日付データ・タイプ

日付フィールドは、事前に決定されたサイズおよび形式を持っています。 これらは定義仕様書で定義することができます。 すべての日付データに先行ゼロおよび後書きゼロが必要です。

比較または割り当てで使用される日付定数または変数は、同じ形式であるか、 または同じ区切り記号が使用されている必要はありません。 また、入力フィールド、出力フィールド、またはキー・フィールドのように入出 力命令に使用される日付は (必要な場合に) 命令に必要な形式に変換されます。

日付変数のデフォルトの内部形式は *ISO です。 このデフォルトの内部形式は制御仕様書のキーワード DATFMT によってグローバルに、 また、定義仕様書のキーワード DATFMT によって個別に一時変更することができます。

日付フィールドの内部日付形式および区切り記号を判別する時に使用される順位は次のとおりです。

  1. 定義仕様書に指定された DATFMT キーワードから
  2. 制御仕様書に指定された DATFMT キーワードから
  3. *ISO

日付データ形式には、表現できる年の範囲により 3 つの種類があります。 これによって、操作の結果がターゲット・フィールドの有効範囲外の日付になった場合、 日付のオーバーフローまたはアンダーフロー条件が発生する可能性があります。 各形式および範囲は次のとおりです。

年の桁数 年の範囲
2 (*YMD、*DMY、*MDY、*JUL) 1940 から 2039
3 (*CYMD、*CDMY、*CMDY) 1900 から 2899
4 (*ISO、*USA、*EUR、*JIS、*LONGJUL) 0001 から 9999

表 33 は、日付データおよびその区切り記号の RPG 形式を リストしています。

日付フィールドのコーディング方法の例については、以下の例を参照してください。

表 33. 日付データ・タイプの RPG 定義日付形式および区切り記号
形式名 説明 形式 (デフォルトの区切り記号) 有効な区切り記号 長さ
2 桁の年形式
*MDY 月/日/年 mm/dd/yy / - . , '&' 8 01/15/96
*DMY 日/月/年 dd/mm/yy / - . , '&' 8 15/01/96
*YMD 年/月/日 yy/mm/dd / - . , '&' 8 96/01/15
*JUL 年間通算日 yy/ddd / - . , '&' 6 96/015
4 桁の年形式
*ISO 国際標準化機構 yyyy-mm-dd - 10 1996-01-15
*USA IBM USA 標準規格 mm/dd/yyyy / 10 01/15/1996
*EUR IBM 欧州標準規格 dd.mm.yyyy . 10 15.01.1996
*JIS 日本工業規格 (JIS) 西暦 yyyy-mm-dd - 10 1996-01-15

表 34 は、すべての RPG 定義日付形式の *LOVAL、*HIVAL、およ びデフォルトの値をリストしています。

表 34. 日付の値
形式名 説明 *LOVAL *HIVAL デフォルトの値
2 桁の年形式
*MDY 月/日/年 01/01/40 12/31/39 01/01/40
*DMY 日/月/年 01/01/40 31/12/39 01/01/40
*YMD 年/月/日 40/01/01 39/12/31 40/01/01
*JUL 年間通算日 40/001 39/365 40/001
4 桁の年形式
*ISO 国際標準化機構 0001-01-01 9999-12-31 0001-01-01
*USA IBM USA 標準規格 01/01/0001 12/31/9999 01/01/0001
*EUR IBM 欧州標準規格 01.01.0001 31.12.9999 01.01.0001
*JIS 日本工業規格 (JIS) 西暦 0001-01-01 9999-12-31 0001-01-01

MOVE、MOVEL、および TEST 命令でのみ使用されるフィールドの場合には、他の 形式もサポートされています。 このサポートは、すでに 3 桁の年形式および 4 桁の 年 *LONGJUL 形式である外部定義値との互換性のために用意されています。 このサポートは、*JOBRUN が指定された場合には、2 桁の年形式にも 適用されます。

*JOBRUN は、それが説明しているフィールドにジョブからの属性があることがわかって いる場合に使用してください。 たとえば、TIME 命令の 12 桁の数値結果は、ジョブ日付形式になります。

表 35 は、MOVE、MOVEL または TEST 命令の演算項目 1 に 使用することができる、有効な外部定義日付形式をリストしています。

表 35. 外部定義の日付形式および区切り記号
形式名 説明 形式 (デフォルトの区切り記号) 有効な区切り記号 長さ
2 桁の年形式
*JOBRUN1 実行時に DATFMT、または DATSEP ジョブ値から 判別されます。
3 桁の年形式2
*CYMD 世紀 年/月/日 cyy/mm/dd / - . , '&' 9 101/04/25
*CMDY 世紀 月/日/年 cmm/dd/yy / - . , '&' 9 104/25/01
*CDMY 世紀 日/月/年 cdd/mm/yy / - . , '&' 9 125/04/01
4 桁の年形式
*LONGJUL 長形式のユリウス暦 yyyy/ddd / - . , '&' 8 2001/115
注:
  1. *JOBRUN は、DATFMT の実行時ジョブ属性が *MDY、*YMD、*DMY または *JUL だけ であるために、年の桁が 2 桁の文字日付または数値日付の場合にのみ有効です。
  2. 世紀の文字 'c' の有効値は次のとおりです。
        'c'           Years
       -----------------------
         0          1900-1999
         1          2000-2099
         .              .
         .              .
         .              .
         9          2800-2899


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]