Anwendungsgebiet: Umgebungsinformationen (Kalender)
Die Funktion DATE-VALUE( ) gibt ein bestimmtes Datum aus, das einer angegebenen Zahl von Tagen seit dem Basisdatum entspricht (Defaultwert ist 1900-01-01).
Format
DATE-VALUE( ) |
NUMBER-OF-DAYS = arithm_ausdruck ,BASE = *STD / *TODAY / string_ausdruck ,FORMAT = *ISO / *AMERICAN / *GERMAN |
Ergebnistyp
STRING (<string 10..13>)
Eingabeparameter
NUMBER-OF-DAYS = arithm_ausdruck
Anzahl der Tage ab dem Basisdatum.
BASE =
Bezeichnet das Basisdatum.
Das Format des BASE-Wert hängt nicht vom Wert des FORMAT-Operanden ab.
Das Format kann *ISO, *GERMAN oder *AMERICAN sein, mit Tag und Monat in einer oder zwei Dezimalstellen (eine führende Null ist für die ersten 9 Tage bzw. Monate nicht erforderlich) und mit dem Jahr in zwei oder vier Dezimalstellen. Der BASE-Wert kann ein Datum mit oder ohne die Anzahl der Tage im aktuellen Jahr enthalten (die Anzahl der Tage muss immer als dreistellige Zahl angegeben werden und muss im Verhältnis zum Rest des Datums korrekt sein) und kann in Verbindung mit der DATE()-Funktion verwendet werden. Bei einer zweistelligen Jahresangabe werden die ersten beiden Dezimalstellen wie bei dem SDF-Datentyp date ergänzt:
Eingabe-Jahr | Die ersten beiden Dezimalstellen |
00..59 | 20 |
60..99 | 19 |
BASE = *STD
Basisdatum ist 1900-01-01.
BASE = *TODAY
Basisdatum ist das aktuelle Datum.
BASE = string_ausdruck
Gibt das Basisdatum an.
Der Wert ist ein Datum ab 1582-10-15.
FORMAT = *ISO / *AMERICAN / *GERMAN
Legt fest, in welchem Format das Datum ausgegeben wird.
Ergebnis
Eingabeparameter FORMAT = | Datumsformat <string 10..13> |
*AMERICAN | mm/tt/jjiii |
*ISO | jjjj-mm-ttiii |
*GERMAN | tt.mm.jjjj |
iii | Tag im laufenden Jahr (001 .. 366) |
jj | zweistellige Jahreszahl |
jjjj | vollständige Jahreszahl |
mm | zweistellige Monatszahl (01 .. 12) |
tt | Tag im laufenden Monat (01 .. 31) |
Fehlermeldung
SDP0452 UNGUELTIGES DATUM
Beispiel
/A = DATE-VALUE(NUMBER-OF-DAYS = 23008, FORMAT = *ISO) /SHOW-VARIABLE A A = 1962-12-30364 /A = DATE-VALUE(NUMBER-OF-DAYS = 23008, FORMAT = *AMERICAN) /SHOW-VARIABLE A A = 12/30/62364 /A = DATE-VALUE(NUMBER-OF-DAYS = 23008, FORMAT = *GERMAN) /SHOW-VARIABLE A A = 30.12.1962 /A = DATE-VALUE(NUMBER-OF-DAYS = 1705, BASE = '04.01.2050004', FORMAT = *ISO) /SHOW-VARIABLE A A = 2054-09-05248 /AFTERTOMORROW = DATE-VALUE(NUMBER-OF-DAYS = 2, BASE = DATE( )) /TOMORROW = DATE-VALUE(NUMBER-OF-DAYS = 1, BASE = *TODAY) /TODAY = DATE( ) /SHOW-VARIABLE (TODAY,TOMORROW,AFTERTOMORROW) AFTERTOMORROW = 2024-07-17199 TODAY = 2024-07-15197 TOMORROW = 2024-07-16198