Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


日付フィールドの比較

日付フィールドは、英数字カテゴリー、ゾーン 10 進数、または内部 10 進数にすることができます。妥当性および比較タイプ (数字または英数字) に関する既存の規則が適用されます。 例えば、英数字の日付フィールドは、内部 10 進数日付フィールドと比較することはできません。これらの規則に加えて、2 つの日付フィールドを それらに互換性がある場合だけ比較できます。すなわち、 ウィンドウ表示西暦年でも拡張西暦年でもよい年部分を除いて、同じ日付フォーマットでなければなりません。

年末尾型日付フィールドの場合、サポートされる唯一の比較は、 日付フォーマットが同じ 2 つの年末尾型日付フィールドの間の IS EQUAL TO および IS NOT EQUAL TO、 または年末尾型日付フィールドと非日付データの間の比較だけです。

表 1 は、非年末尾型日付フィールドについてサポートされる比較を示しています。この表では、比較の実行方法を記述するのに以下の用語を使用しています。

ウィンドウ表示なし
オペランドが両方とも非日付データであるかのように、 ウィンドウ表示なしで比較が実行されます。
ウィンドウ表示
以下のように、比較が実行されます。
  1. 比較の中のウィンドウ表示日付フィールドは、YEARWINDOW コンパイラー・オプションによって指定された世紀ウィンドウに従って 拡張されたかのように扱われます (ウィンドウ表示日付フィールドのセマンティクスを参照)。

    DATEPROC(TRIG) コンパイラー・オプションが有効である場合、この拡張では日付フィールドの比較オペランドのトリガー値が考慮されます。

  2. 反復する英数字の形象定数は、比較されるウィンドウ表示日付フィールド (英数字の非日付データの被比較数) のサイズまで拡張されたかのように扱われます。反復の英数字の形象定数には、ZERO (英数字のコンテキストの場合)、SPACE、 LOW-VALUE、HIGH-VALUE、QUOTE、および ALL リテラル があります。
  3. 非日付データオペランドは、日付フィールドと同じ日付フォーマットで、 1900 を基本年とするもののようにして扱われます。

    DATEPROC(NOTRIG) コンパイラー・オプションが有効である場合、 比較は拡張西暦年の世紀部分を 19 とみなすことによって非日付オペランドが拡張されたかのようにして実行されます。

    DATEPROC(TRIG) コンパイラー・オプションが有効である場合、 比較では非日付オペランドの日付トリガー値が考慮されます。英数字のオペランドの場合のトリガー値は LOW-VALUE、HIGH-VALUE、および SPACE です。 DATE FORMAT 節に最低 1 つの X が含まれるウィンドウ表示日付フィールド (つまりウィンドウ表示西暦年だけではないウィンドウ表示日付フィールド) と比較される英数字および数字オペランドの場合、全桁 0 または全桁 9 の値もトリガーとして扱われます。非日付オペランドの内容がトリガー値の場合、比較は、トリガー値を拡張西暦年の仮定世紀部分にコピーすることによって、非日付オペランドが拡張されたかのようにして実行されます。非日付オペランドの内容がトリガー値でないなら、拡張西暦年の世紀部分は 19 とみなされます。

その後、通常の COBOL 規則に従って比較が実行されます。 世紀値を接頭部として付けることによって英数字の比較が数字の比較に変更されることはありません。

表 1. 日付フィールドとの比較
 

非日付データ
第 2 オペランド

ウィンドウ表示
日付フィールド
第 2 オペランド

拡張
日付フィールド第 2 オペランド

非日付データ
第 1 オペランド

ウィンドウ表示なし ウィンドウ表示1 ウィンドウ表示なし

ウィンドウ表示
日付フィールド第 1 オペランド

ウィンドウ表示1 ウィンドウ表示 ウィンドウ表示

拡張日付フィールド第 1 オペランド

ウィンドウ表示なし ウィンドウ表示 ウィンドウ表示なし
  1. ウィンドウ表示日付フィールドとの比較において非日付データは、1900 を基準とするウィンドウ表示西暦年を含むものと想定されます。詳細については、「ウィンドウ表示」比較の定義の項目 3 を参照してください。

比較条件に算術式を含めることができます。 算術式での日付フィールドの処理については、日付フィールドを使用する算術計算を参照してください。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)