時刻データ・タイプ
時刻フィールドは、事前に決定されたサイズおよび形式を持っています。 これらは定義仕様書で定義することができます。 すべての時刻データに先行ゼロおよび後書きゼロが必要です。
比較または割り当てで使用される時刻定数または変数は、同じ形式であるか、 または同じ区切り記号が使用されている必要はありません。 また、入力フィールド、出力フィールド、またはキー・フィールドのように入出 力命令に使用される時刻は (必要な場合に) 命令に必要な形式に変換されます。
時刻変数のデフォルトの内部形式は *ISO です。 このデフォルト内部形式は、制御仕様書キーワード TIMFMT によって
グローバルにオーバーライドすることができ、/SET 指示および /RESTORE 指示によって一時的に変更することができ、
また、定義仕様書キーワード TIME または TIMFMT によって個々に設定することができます。
時刻フィールドの内部時刻形式および区切り記号を判別する時に使用される順位
は次のとおりです。
定義仕様書に指定された TIME または TIMFMT キーワードから
/RESTORE 指示で元に戻されていない、TIMFMT キーワードを含んでいる最新の /SET 指示から
- 制御仕様書に指定された TIMFMT キーワードから
- *ISO
/RESTORE 指示で元に戻されていない、TIMFMT キーワードを含んでいる最新の /SET 指示から
時刻フィールドのコーディング方法の例については、以下の例を参照してください。
表 1 は、サポートされている時刻形式およびその区切り記号
をリストしています。
注: 区切り記号「&」は、区切り記号としてブランクが使用されることを示します。
例えば、TIME(*HMS&) で定義された時刻フィールドの
区切り記号はブランクになります。
| RPG 形式名 | 説明 | 形式 (デフォルトの区切り記号) | 有効な区切り記号 | 長さ | 例 |
|---|---|---|---|---|---|
| *HMS | 時:分:秒 | hh:mm:ss | : . , & | 8 | 14:00:00 |
| *ISO | 国際標準化機構 | hh.mm.ss | . | 8 | 14.00.00 |
| *USA | IBM® USA 標準規格。 AM および PM を大文字および小文字の任意の組み合わせとすることができます。 | hh:mm AM または hh:mm PM | : | 8 | 02:00 PM |
| *EUR | IBM 欧州標準規格 | hh.mm.ss | . | 8 | 14.00.00 |
| *JIS | 日本工業規格 (JIS) 西暦 | hh:mm:ss | : | 8 | 14:00:00 |
表 2 は、すべての時刻形式の *LOVAL、*HIVAL、およ
びデフォルトの値をリストしています。
| RPG 形式名 | 説明 | *LOVAL | *HIVAL | デフォルトの値 |
|---|---|---|---|---|
| *HMS | 時:分:秒 | 00:00:00 | 24:00:00 | 00:00:00 |
| *ISO | 国際標準化機構 | 00.00.00 | 24.00.00 | 00.00.00 |
| *USA | IBM USA 標準規格。 AM および PM を大文字および小文字の任意の組み合わせとすることができます。 | 00:00 AM | 12:00 AM | 00:00 AM |
| *EUR | IBM 欧州標準規格 | 00.00.00 | 24.00.00 | 00.00.00 |
| *JIS | 日本工業規格 (JIS) 西暦 | 00:00:00 | 24:00:00 | 00:00:00 |