9.33 DATEDIFFERENCE
注意: 9.1 組み込み関数の規則 利用オプション
指定された2つの日付の間の日数を計算します。戻りコードは、日付形式または日付自体が正しいかどうか (YまたはN) を示します。計算された値の符号 (正/負) も戻すことができます。
引数
番号 | タイプ | 必須/ 任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | N | 必須 | 開始/最初の日付 「注意:」を参照 | 6 | 8 | 0 | 0 |
2 | A | 必須 | 開始/最初の日付の形式 | 1 | 1 | ||
3 | N | 必須 | 終了/2番目の日付 「注意:」を参照 | 6 | 8 | 0 | 0 |
4 | A | 必須 | 終了/2番目の日付の形式 | 1 | 1 |
有効な日付形式
- 最初および2番目の日付形式として有効な値は、A、B、D、F、H、J、L、V および 1 です。
- 「日付形式」を参照してください。
注意:
最初の引数および3番目の引数には、INTEGERフィールドおよびFLOATフィールドは使用できません。
DATEフィールドは、組み込みファンクション .AsNumber を使用して最初に文字列に変換すれば使用することができます。
2番目および4番目の引数の値は、組み込みファンクションに指定する値の形式と同じにする必要があります。
例えば、DATEFL1という名前のDATEフィールドがあり、このフィールドを最初の引数としてBIFに使用する場合は、以下のような変換を行う必要があります。
DATEFL1.AsNumber(DDMMCCYY) (他の形式については、この組み込みファンクションを参照してください)
この例では、2番目の引数の値はHにする必要があります。これは、DDMMYYYYの日付形式を表しています。
最初の戻り値を保持するフィールドとしては、INTEGERおよびFLOATを含むすべてのNUMERICフィールドを使用することができます。
RDMLX専用の例:
USE BUILTIN(DATEDIFFERENCE_ALPHA) WITH_ARGS(#DATEFL1. AsNumber(DDMMCCYY) H #DATFL2. AsNumber (CCYYMMDD) J)TO_GET(#DEC80 )
戻り値
番号 | タイプ | 必須/ 任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | N | 必須 | 開始から終了までの日数 | 3 | 8 | 0 | 0 |
2 | A | 任意 | 相違を示す符号 (+または-) | 1 | 1 | ||
3 | A | 任意 | 完了したかどうかを示す戻りコード (YまたはN) | 1 | 1 |
注意:比較および計算を正確に実行するため、すべての日付の年は4桁である必要があります。ユーザーが入力した年が2桁(例:DDMMYY、YYMMDD、MMYY)の場合、システム定義データ・エリアから世紀の値が検索されます。指定された年をデータ・エリアの年と比較します。指定された年が比較年よりも小さいか等しい場合、前の世紀が使われます。指定された年が比較年よりも大きい場合、後の世紀が使われます。
例
日付形式がYYMMDD(Dタイプ)の#YMD日付フィールドと、日付形式がDDMMYY(Bタイプ)の#DMY日付フィールドの間の日数#DIFFを計算するには、以下のようにします。
USE BUILTIN(DATEDIFFERENCE) WITH_ARGS(#YMD D #DMY B)
TO_GET(#DIFF #SIGN)