View Full Version : Frage Datumscheck
CaddyMajor
18-12-07, 15:28
Hallo zusammen,
kleine Anfängerfrage:
Vorhanden ist ein Feld 8stellig nummerisch
(31122007).
Welche Möglichkeiten habe ich, das Datum auf "Existenz" zu prüfen?
Sprich Fehler bei 32.05.2007.
Vielen Dank
Am besten mittel %date(mydate) in einer Monitor-Gruppe in ein Datum wandeln.
Gibts einen Fehler, ist das Datum ungültig.
Wenn's nur darum geht, ob in einem numerischen Feld ein gültiges Datum steht, würde ich TEST(D) vorziehen:
/Free
Test(DE) *EUR MyDate;
If %Error;
//Ungültiges Datum
Endif;
/End-Free
Im Faktor 1 muss das Format, sofern es sich nicht um das ISO-Format (JJJJMMDD) handelt angegeben werden. In Deinem Fall ist das Datum mit 4-stelligem Jahr im Format TTMMJJJJ angegeben, also im *EUR (europäischen Format).
Das Format muss übrigens auch bei der Built-In-Funktion %Date(MyDateNum: *EUR) angegeben werden, sonst wird auf *ISO geprüft.
Birgitta
Guten Morgen!
Also ich benutze gerne den CL-CMD CVTDAT. Dieser gibt dir auch einen Fehler zurück wenn es sich um ein ungültiges Datum handelt.
Convert Date (CVTDAT) (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/cl/cvtdat.htm?resultof=%22%43%56%54%44%41%54%22%20%22 %63%76%74%64%61%22%20)
Aus RPG heraus aber auch nicht einfach zu verwenden ;)
Ich hab mir ein CLP gebastelt. Da ich die Datumskonvertierung von YYYYMMDD auf YYYY.MM.DD öfters brauche.
Dieses CLP rufe ich mit den notwenigen Paramtern aus einem RPG auf.
Fehler fang ich mit dem altbewährten MONMSG ab und gib dann einen Fehlerflag an das RPG zurück :D.
CaddyMajor
19-12-07, 09:20
Vielen Dank für die vielen Tipps.
Problem gelöst :-)