Dieses Dokument behandelt folgende Themen:
Die unten aufgeführten Datums- und Zeit-Systemvariablen können an den folgenden Stellen angegeben werden:
Der von Natural generierte Inhalt der Datums- und Zeit-Systemvariablen kann nicht verändert werden, d.h. Sie können keiner dieser Variablen in einem Natural-Programm einen anderen Wert zuweisen.
Alle Datumsvariablen enthalten das aktuelle Datum. Das Format des Datums ist bei jeder Variablen anders, wie die folgende Tabelle zeigt.
Datumsvariable | Format/Länge | Datumsformat * |
---|---|---|
*DATD
|
A8 | DD.MM.YY |
*DAT4D
|
A10 | DD.MM.YYYY |
*DATE
|
A8 | DD/MM/YY |
*DAT4E
|
A10 | DD/MM/YYYY |
*DATG
|
A15 | DDmonthnameYYYY
(Gregorianisch)
|
*DATI
|
A8 | YY-MM-DD |
*DAT4I
|
A10 | YYYY-MM-DD |
*DATJ
|
A5 | YYDDD (Julianisch)
|
*DAT4J
|
A7 | YYYYDDD (Julianisch)
|
*DATN
|
N8 | YYYYMMDD |
*DATU
|
A8 | MM/DD/YY |
*DAT4U
|
A10 | MM/DD/YYYY |
*DATV
|
A11 | DD-MON-YYYY |
*DATVS
|
A9 | DDMONYYYY |
*DATX
|
D | Internes Datumsformat |
* D
= Day (Tag), M
= Monat, Y =
Year (Jahr), MON
= führende drei Bytes des Monatsnamens wie in
*DATG
.
Zur Laufzeit wird der Inhalt einer Zeit-Systemvariablen jedes Mal von neuem ausgewertet, wenn die Variable in einem Natural-Programm referenziert wird. Das Format der Zeit ist für jede Zeit-Variable unterschiedlich (siehe unten).
Zeitvariable | Format/Länge | Erklärung |
---|---|---|
*TIMD (r)
|
N7 | Kann nur in Verbindung mit einem vorangegangenen
SETTIME -Statement
verwendet werden.
Enthält die Zeit, die seit der Ausführung des
Format Bei mehreren |
*TIME
|
A10 | Enthält die aktuelle Uhrzeit im Format HH:II:SS.T
(*).
|
*TIME-OUT
|
N5 | *TIME-OUT enthält die Anzahl der
verbleibenden Sekunden, bevor die aktuelle Transaktion wegen Zeitüberschreitung
abgebrochen wird (nur verfügbar unter Natural Security).
|
*TIMESTMP
|
B8 |
Hardware-interner Zeitzähler (Store Clock). |
*TIMN
|
N7 | Enthält die aktuelle Uhrzeit im Format HHIISST
(*).
|
*TIMX
|
T | Enthält die aktuelle Uhrzeit im internen Zeitformat. |
* H
= Hour (Stunde), I
= Minute,
S
= Sekunde, T
= Tenth of a second
(Zehntelsekunde).
** 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
Ausgabe des Programms 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