日付/時刻の演算
概要
RPGでは日付や時刻に関する演算命令が用意されています。
日付や時刻の形式は使用するデータベース・ファイル内で記述されますが、RPGプログラム内で日付や時刻の変数として使用するときに定義します。
タイム・スタンプのデータタイプ
1)日付の形式はDATFMTキーワードによって決まります。
日付フィールド(変数)でDATFMTを指定しないと、*ISO(国際標準)の形式がとられます。
2)時刻の形式はTIMFMTキーワードによって決まります。
時刻フィールド(変数)でTIMFMTを指定しないと、*ISO(国際標準)の形式がとられます。
3)タイム・スタンプの形式は事前に決められた26桁の形式です。
「-年-月-日-時.分.秒.マイクロ秒」の形式で表されます。
日付、時刻のデータ・タイプ
日付のデータ・タイプ(DATFMT)
| [値] | [説明] | [形式] | [長さ] | [使用例] |
|---|---|---|---|---|
| *MDY | 月/日/年 | MM/DD/YY | 8 | 08/27/18 |
| *DMY | 日/月/年 | DD/MM/YY | 8 | 27/08/18 |
| *YMD | 年/月/日 | YY/MM/DD | 8 | 18/08/27 |
| *JUL | 通年 | YY/DDD | 6 | 18/238 |
| *ISO | 国際標準 | YYYY-MM-DD | 10 | 2018-08-27 |
| *USA | USA標準 | MM/DD/YYYY | 10 | 08/27/2018 |
| *EUR | ヨーロッパ標準 | DD.MM.YYYY | 10 | 27.08.2018 |
| *JIS | 日本工業規格 | YYYY-MM-DD | 10 | 2018-08-27 |
時刻のデータ・タイプ(TIMFMT)
| [値] | [説明] | [形式] | [長さ] | [使用例] |
|---|---|---|---|---|
| *HMS | 時.分.秒 | HH:MM:SS | 8 | 14:00:00 |
| *ISO | 国際標準 | HH.MM.SS | 8 | 14.00.00 |
| *USA | USA標準 | HH:MM AM | 8 | 02:00 PM |
| *EUR | ヨーロッパ標準 | HH.MM.SS | 8 | 14.00.00 |
| *JIS | 日本工業規格 | HH:MM:SS | 8 | 14:00:00 |
タイム・スタンプのリテラル
「リテラルとは名前無しの固有情報」のことで、演算仕様書、定義仕様書および主注力仕様書で使用します。
1)日付リテラル
D’XXXXXX’
’XXXXXX’は制御仕様書で指定された有効な日付形式で指定します。
2)時刻リテラル
T’XXXXXX’
’XXXXXX’は制御仕様書で指定された有効な日付形式で指定します。
3)タイム・スタンプ・リテラル
Z’YYYY-MM-DD-hh.mm.ss.mmmmmm’
’年-月-日-時-分-秒-マイクロ秒’で指定します。