Return to the RPG Tips
Date Conversion Examples
*===================================================================== d monday c d'1900-01-01' *===================================================================== d d_o_w s 1s 0 inz d d_o_y s 3s 0 inz d qtr_nbr s 1s 0 inz d wk_nbr s 3s 0 inz *===================================================================== d jan_4_dat s d inz d jan_4_dow s 1s 0 inz *==================================================================== d d_dat s d inz d wk1_dat s d inz *==================================================================== d n_iso s 8s 0 inz d n_usa s 8s 0 inz d n_eur s 8s 0 inz d n_jis s 8s 0 inz d n_longjul s 7s 0 inz * d n_ymd s 6s 0 inz d n_mdy s 6s 0 inz d n_dmy s 6s 0 inz d n_jul s 5s 0 inz * d n_cymd s 7s 0 inz d n_cmdy s 7s 0 inz d n_cdmy s 7s 0 inz *===================================================================== d a_iso s 10a inz d a_usa s 10a inz d a_eur s 10a inz d a_jis s 10a inz d a_longjul s 8a inz * d a_ymd s 8a inz d a_mdy s 8a inz d a_dmy s 8a inz d a_jul s 6a inz * d a_cymd s 9a inz d a_cmdy s 9a inz d a_cdmy s 9a inz *===================================================================== d bom_d_dat s d inz d boq_d_dat s d inz d boy_d_dat s d inz *==================================================================== d eom_d_dat s d inz d eoq_d_dat s d inz d eoy_d_dat s d inz *==================================================================== /free // Current Date to Date Field d_dat = %date(); // Date to Numeric-ISO n_iso = %dec( %char(d_dat : *iso0) : 8 : 0); // Date to Alpha-ISO a_iso = %char(d_dat : *iso); // Date to Numeric-USA n_usa = %dec( %char(d_dat : *usa0) : 8 : 0); // Date to Alpha-USA a_usa = %char(d_dat : *usa); // Date to Numeric-EUR n_eur = %dec( %char(d_dat : *eur0) : 8 : 0); // Date to Alpha-EUR a_eur = %char(d_dat : *eur); // Date to Numeric-JIS n_jis = %dec( %char(d_dat : *jis0) : 8 : 0); // Date to Alpha-JIS a_jis = %char(d_dat : *jis); // Date to Numeric-LONGJUL n_longjul = %dec( %char(d_dat : *longjul0) : 7 : 0); // Date to Alpha-LONGJUL a_longjul = %char(d_dat : *longjul); // Date to Numeric-YMD n_ymd = %dec( %char(d_dat : *ymd0) : 6 : 0); // Date to Alpha-YMD a_ymd = %char(d_dat : *ymd); // Date to Numeric-MDY n_mdy = %dec( %char(d_dat : *mdy0) : 6 : 0); // Date to Alpha-MDY a_mdy = %char(d_dat : *mdy); // Date to Numeric-DMY n_dmy = %dec( %char(d_dat : *dmy0) : 6 : 0); // Date to Alpha-DMY a_dmy = %char(d_dat : *dmy); // Date to Numeric-JUL n_jul = %dec( %char(d_dat : *jul0) : 5 : 0); // Date to Alpha-JUL a_jul = %char(d_dat : *jul); // Date to Numeric-CYMD n_cymd = %dec( %char(d_dat : *cymd0) : 7 : 0); // Date to Alpha-CYMD a_cymd = %char(d_dat : *cymd); // Date to Numeric-CMDY n_cmdy = %dec( %char(d_dat : *cmdy0) : 7 : 0); // Date to Alpha-CMDY a_cymd = %char(d_dat : *cymd); // Date to Numeric-CMDY n_cmdy = %dec( %char(d_dat : *cmdy0) : 7 : 0); // Date to Alpha-CMDY a_cmdy = %char(d_dat : *cmdy); // Date to Numeric-CDMY n_cdmy = %dec( %char(d_dat : *cdmy0) : 7 : 0); // Date to Alpha-CDMY a_cdmy = %char(d_dat : *cdmy); //============================ // Numeric-ISO to Numeric-USA n_usa = %dec( %char( %date(n_iso : *iso) : *usa0) : 8 : 0); // Numeric-USA to Numeric-ISO n_iso = %dec( %char( %date(n_usa : *usa) : *iso0) : 8 : 0); // Numeric-ISO to Alpha-USA a_usa = %char( %date(n_iso : *iso) : *usa); // Alpha-USA to Numeric-ISO n_iso = %dec( %char( %date(a_usa : *usa) : *iso0) : 8 : 0); // Numeric-ISO to Alpha-MDY a_mdy = %char( %date(n_iso : *iso) : *mdy); // Alpha-MDY to Numeric-ISO n_iso = %dec( %char( %date(a_mdy : *mdy) : *iso0) : 8 : 0); //=========================================================== // Current Date to Date Field d_dat = %date(); // Current Date to Numeric-USA n_usa = %dec( %char( %date() : *usa0) : 8 : 0); // Current Date to Numeric-ISO n_iso = %dec( %char( %date() : *iso0) : 8 : 0); //========================================================== // Beginning of Month Date to Date Field bom_d_dat = d_dat - %days( %subdt(d_dat : *days) - 1); //=========================================================== // End of Month Date to Date Field eom_d_dat = bom_d_dat + %months(1) - %days(1); //============================================================= // Beginning of Quarter Date to Date Field boq_d_dat = bom_d_dat - %months( %rem( %subdt(d_dat : *months) -1 :3)); //=============================================================== // End of Quarter Date to Date Field eoq_d_dat = boq_d_dat + %months(3) - %days(1); //=================================================================== // Beginning of Year Date to Date Field boy_d_dat = %date( %char( %subdt(d_dat : *years)) + '-01-01' : *iso); //=================================================================== // Quarter Number qtr_nbr = %subdt(eoq_d_dat : *months) / 3; //=================================================================== // Day of Week (1=Monday...7=Sunday) d_o_w = %rem( %diff(d_dat : monday : *days) : 7) + 1; if d_o_w <= *zeros; d_o_w += 7; endif; //=================================================================== // Day of Year d_o_y = %diff( d_dat : boy_d_dat : *days) + 1; //=================================================================== // Week Number (ISO 8601) jan_4_dat = %date( %char( %subdt(d_dat : *years)) + '-01-04' : *iso); jan_4_dow = %rem( %diff(jan_4_dat : monday : *days) : 7) + 1; wk_nbr = %div(d_o_y + jan_4_dow + 2 : 7); if wk_nbr = *zeros; wk_nbr = 53; endif; //=================================================================== *inLR = *on; Return; /end-free
[report a broken link by clicking here]