このドキュメントでは、次のトピックについて説明します。
日付と時間のシステム変数は、以下の場所で指定できます。
Natural が生成した日付と時間のシステム変数の内容は、変更できません。そのため、Natural プログラムでシステム変数に別の値を割り当てることはできません。
すべての日付システム変数には現在の日付が格納されます。 日付のフォーマットは、以下に示すように日付変数ごとに異なります。
日付変数 | フォーマット/長さ | 日付フォーマット* |
---|---|---|
*DATD | A8 | DD.MM.YY |
*DAT4D | A10 | DD.MM.YYYY |
*DATE | A8 | DD/MM/YY |
*DAT4E | A10 | DD/MM/YYYY |
*DATG | A15 | DDmonthnameYYYY(グレゴリオ暦) |
*DATI | A8 | YY-MM-DD |
*DAT4I | A10 | YYYY-MM-DD |
*DATJ | A5 | YYDDD(ユリウス暦) |
*DAT4J | A7 | YYYYDDD(ユリウス暦) |
*DATN | N8 | YYYYMMDD |
*DATU | A8 | MM/DD/YY |
*DAT4U | A10 | MM/DD/YYYY |
*DATV | A11 | DD-MON-YYYY |
*DATVS | A9 | DDMONYYYY |
*DATX | D | 内部日付形式 |
* D = 日、M = 月、Y = 年、MON = *DATG
のように月名の先行 3 バイト
ランタイムに、時間システム変数の内容は、Natural プログラムで参照されるたびに改めて評価されます。 時間のフォーマットは以下に示すように変数ごとに異なります。
時間変数 | フォーマット/長さ | 説明 |
---|---|---|
*TIMD (r) | N7 | 前の SETTIME ステートメントと組み合わせてだけ使用できます。
|
*TIME | A10 | HH:II:SS.T(*)形式の時刻。 |
*TIME-OUT | N5 | このシステム変数は Natural Security でだけ有効であり、現在のトランザクションが時間切れになるまでの残りの秒数を示します。
トランザクションモードに入る前の
|
*TIMESTMP | B8 |
マシン内部設置時計の値。 BS2000/OSD では、この値はローカルタイムまたは GMT タイムとして使用できます。 すべての環境で一貫性を持つように、BS2000/OSD での *TIMESTMP の内容は GMT タイムです。 |
*TIMN | N7 | HHIISST(*)形式の時刻。 |
*TIMX | T | 内部時間形式の時刻。 |
* H = 時、I = 分、S = 秒、T = 1/10 秒
** Example 'DATIVAR': Date and time system variables ************************************************************************ DEFINE DATA LOCAL 1 #DATE (D) 1 #TIME (T) END-DEFINE * WRITE NOTITLE 'DATE IN FORMAT DD.MM.YYYY ' *DAT4D / 'DATE IN FORMAT DD/MM/YYYY ' *DAT4E / 'DATE IN FORMAT DD-MON-YYYY ' *DATV / 'DATE IN FORMAT DDMONYYYY ' *DATVS / 'DATE IN GREGORIAN FORM ' *DATG / 'DATE IN FORMAT YYYY-MM-DD ' *DAT4I / 'DATE IN FORMAT YYYYDDD ' *DAT4J / 'DATE IN FORMAT YYYYMMDD ' *DATN (AD=L) / 'DATE IN FORMAT MM/DD/YYYY ' *DAT4U / 'DATE IN INTERNAL FORMAT ' *DATX (DF=L) /// 'TIME IN FORMAT HH:II:SS.T ' *TIME / 'TIME IN FORMAT HHIISST ' *TIMN (AD=L) / 'TIME IN INTERNAL FORMAT ' *TIMX / * MOVE *DATX TO #DATE ADD 14 TO #DATE WRITE 'CURRENT DATE' *DATX (DF=L) 3X 'CURRENT DATE + 14 DAYS ' #DATE (DF=L) * MOVE *TIMX TO #TIME ADD 100 TO #TIME WRITE 'CURRENT TIME' *TIMX 5X 'CURRENT TIME + 10 SECONDS' #TIME * END
プログラム DATIVAR
の出力:
DATE IN FORMAT DD.MM.YYYY 11.01.2005 DATE IN FORMAT DD/MM/YYYY 11/01/2005 DATE IN FORMAT DD-MON-YYYY 11-Jan-2005 DATE IN FORMAT DDMONYYYY 11Jan2005 DATE IN GREGORIAN FORM 11January 2005 DATE IN FORMAT YYYY-MM-DD 2005-01-11 DATE IN FORMAT YYYYDDD 2005011 DATE IN FORMAT YYYYMMDD 20050111 DATE IN FORMAT MM/DD/YYYY 01/11/2005 DATE IN INTERNAL FORMAT 2005-01-11 TIME IN FORMAT HH:II:SS.T 14:42:05.4 TIME IN FORMAT HHIISST 1442054 TIME IN INTERNAL FORMAT 14:42:05 CURRENT DATE 2005-01-11 CURRENT DATE + 14 DAYS 2005-01-25 CURRENT TIME 14:42:05 CURRENT TIME + 10 SECONDS 14:42:15