PDA

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

Fuerchau
18-12-07, 15:35
Am besten mittel %date(mydate) in einer Monitor-Gruppe in ein Datum wandeln.
Gibts einen Fehler, ist das Datum ungültig.

B.Hauser
18-12-07, 16:13
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

prsbrc
19-12-07, 07:34
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)

Fuerchau
19-12-07, 08:02
Aus RPG heraus aber auch nicht einfach zu verwenden ;)

prsbrc
19-12-07, 09:09
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 :-)