© serviceprofessionalgmbh

Vielfach wird die Stärke der Datumsfunkionalität unter REXX-MVS unterschätzt oder nicht ausführlich genug im Manual nachgelesen (war früher in dieser Form auch nicht möglich).

Grundsätzlich erlaubt die DATE-Funktion die Konvertierung eines Datums aus vielen verschiedenen Formaten in andere. Bei dieser Konvertierung kann natürlich auch mit dem Datum gerechnet werden (siehe auch Rechnen mit Datum).

Da in unseren Breitengraden ein Datum üblicherweise im Format tt.mm.jjjj behandelt wird und dieses Format von REXX nicht direkt unterstützt wird, wollen wir es im Programm als Format G (German) berücksichtigen.

Auch die Konvertierung ins julianische Format ist nicht möglich. Sehen Sie hierzu die Funktion DN2DJ (Date Normal TO Date Julian).

/* REXX * XDATE
*/
parse source . PTYP .
if PTYP = "FUNCTION" then arg FMT_OUT,BASE_DATE,FMT_IN,DUMMY
else                      arg FMT_OUT BASE_DATE FMT_IN .
SAVE_FMT_OUT = FMT_OUT
if FMT_IN = "G" then do                     /* Input-Format = GERMAN */
   parse var BASE_DATE TT "." MM "." JJJJ
   BASE_DATE = JJJJ !! MM !! TT             /* change to SORTED      */
   FMT_IN    = "S"                          /* change to SORTED      */
end
if FMT_OUT = "G" then do                    /* change to SORTED      */
   FMT_OUT = "S"
end
NEW_DATE = date(FMT_OUT,BASE_DATE,FMT_IN)
if SAVE_FMT_OUT = "G" then do
   parse var NEW_DATE 1 JJJJ 5 MM 7 TT
   NEW_DATE = TT"."MM"."JJJJ                /* change to GERMAN      */
end
return NEW_DATE
zurück zu Datum & Zeit