bif date conversion list ( I splitted the definitions and free form part )
Definitions
If you have any other fun dates in free format, post them !
Definitions
PHP Code:
*=====================================================================
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
Comment