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


ウィンドウ表示日付フィールドのセマンティクス

ウィンドウ表示日付フィールドが算術式または算術ステートメントでオペランドとして使用されると、世紀ウィンドウに関しては自動拡張されます。しかし、ウィンドウ表示日付を増大または減少した結果は、 その後の計算、比較、および保管操作においては、 やはりウィンドウ表示日付として扱われます。

ウィンドウ表示日付フィールドが以下の状況で使用された場合、それは拡張日付フォーマットに変換されたかのように扱われます。

拡張日付フォーマットへの変換の詳細は、ウィンドウ表示日付フィールドが数字であるか、 英数字であるかによって異なります。

世紀ウィンドウに 19nn の開始年を与えた場合、数字ウィンドウ表示日付フィールドの年部分 (yy) は、次のように拡張されたかのように扱われます。

符号付き数字ウィンドウ表示日付フィールドの場合、これは、年の表示が 2 種類あり得るということを意味します。例えばウィンドウ表示西暦年の値 99 と -01 は両方とも 1999 として扱われます。 これは 1900 + 99 = 2000 + -01 だからです。

英数字のウィンドウ表示日付フィールドも同様に扱われますが、1900 または 2000 を加算する代わりに、19 または 20 の接頭部が使用されます。

例えば、比較条件のオペランドとして使用された場合、ウィンドウ表示日付フィールドは以下のようになります。

01  DATE-FIELD  DATE FORMAT YYXXXX PICTURE 9(6)
                VALUE IS 450101.

上記のように定義されたウィンドウ表示日付フィールドは、次のどちらかの値の拡張日付フィールドであるかのように扱われます。

日付トリガー値

DATEPROC(TRIG) コンパイラー・オプションが有効である場合、ウィンドウ表示日付フィールドの拡張ではウィンドウ表示日付フィールド中の特定のトリガー値または限界値が考慮されます。

英数字ウィンドウ表示日付フィールドの場合の特殊値は LOW-VALUE、 HIGH-VALUE、 および SPACE です。DATE FORMAT 節に最低 1 つの X が含まれる英数字および数字ウィンドウ表示日付フィールド (つまりウィンドウ表示西暦年だけではないウィンドウ表示日付フィールド) の場合、 全桁 0 または全桁 9 の値もトリガーとして扱われます。

全桁 0 の値は、どんな有効日付より前の日付となります。 全桁 9 の値の目的は、どんな有効日付よりも後の日付として動作することです。

このような方法でウィンドウ表示日付フィールドにトリガーが含まれる場合は、 19 や 20 を世紀値として推測するのではなく、 トリガー値が拡張日付結果の世紀部分にコピーされるかのようにして拡張されます。

この特殊トリガー拡張は、ウィンドウ表示日付フィールドが比較条件のオペランドとして、 または算術または MOVE ステートメントの送り出しフィールドとして使用される場合に実行されます。トリガー拡張は、ウィンドウ表示日付フィールドが算術式のオペランドとして使用される場合は実行されませんが、算術式のウィンドウ表示日付の最終結果には適用されることがあります。


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

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