MainframeSupports
tip uge 20/2007:

Mange datoer i forskellige produkter på mainframen gemmes og vises som julianske datoer, altså på formatet YYDDD, hvor YY = årstallet og DDD er dagnummeret i året. I januar måned er det ret let at omsætte en juliansk dato til en almindelig dato, men som året går bliver det sværere og sværere. Heldigvis kan DATE funktionen i REXX hjælpe dig.

Jeg håber, at du for længst har implementeret min simple lommeregner, for med den er det nemlig en smal sag at omregne en juliansk dato til dag og måned. Hvis du ligesom jeg har kaldt denne REXX for SAY, så kan omregningen af dag 100 i år 2007 gøres med kommandoen TSO SAY DATE('S','07100','J'). Resultatet leveres på formatet YYYYMMDD. I et REXX program kan du simpelthen skrive SAY 'DATO(YYYYMMDD)='DATE('S','07100','J')

Normalt benytter de fleste REXX progammører DATE til at hente dags dato, som DATE kan returnere i mange forskellige formater, men REXX kan som vist også konvertere fra et dato-format til et andet. Første parameter angiver det dato-format, som DATE skal konvertere datoen til, anden parameter datoen, og tredie parameter, det format, datoen er angivet i. Desværre kan DATE ikke omregne fra dag, måned og år til en juliansk dato (sikke noget skod). I stedet kan man omregne fra dag, måned og år til dag i året med DATE('D','20070514','S').

Forrige danske tip        Last tip in english        Tip oversigten