You are on page 1of 2

Dates Manipulation « WIKIBANKING dot INFO http://www.wikibanking.

info/2012/09/dates-manipulation/

wikibanking.info http://www.wikibanking.info/2012/09/dates-manipulation/

Dates Manipulation

Get detailed date time information:

* Time HH:MM:SS DD MMM YYYY


CURRENT.TIME = TIMEDATE()
CURRENT.TIME = CURRENT.TIME[1,2]: ':' : CURRENT.TIME[4,2]: ':' : CURRENT.TIME[7,2]
* will give a time of "18:51:00" for instance.

Date formatting:

CALL DIETER.DATE(DATE.IN,DATE.OUT,’D’)

Example:

ORD.DATE = R.DXO<DX.ORD.TRADE.DATE>
(for instance= '20151106')
ORDER.DATE = ''
IF (ORD.DATE) THEN CALL DIETER.DATE(ORD.DATE,ORDER.DATE,'D')
=> gives ORDER.DATE = '06 NOV 2015'

Compute a difference between 2 dates:

CALL CDD(YREGION,START.DATE, END.DATE, DAYS.DIFF)

With DAYS.DIFF set to W for a difference in working days, C for a difference in calendar days. After the call,
DAYS.DIFF will contain the days difference.

Example:

REMAIN.CAL.DAYS = "C"
START.DATE = TODAY
IF START.DATE < EXPIRY.DATE THEN
CALL CDD('',START.DATE, EXPIRY.DATE, REMAIN.CAL.DAYS)
END
=> gives REMAIN.CAL.DAYS = 115

Derive a date by adding or subtracting a number of days:

CALL CDT(YREGION,YDATE, YDAYS)

With:
YREGION only necessary when calculating working days
YDATE= YYYYMMDD
YDAYS: number without (= ‘+’) or with ‘+’ or ‘-‘ sign in front and without (= ‘W’) or with ‘W’ (= Working days to be
calculated) or ‘C’ (=Calender days to be calculated) at the end.
Definition may be multiple: e.g. ‘+02W03C’ or ‘+10W-3C’

1 of 2 17/09/2015 11:09 AM
Dates Manipulation « WIKIBANKING dot INFO http://www.wikibanking.info/2012/09/dates-manipulation/

Example:

if TODAY = 20140606
PROCESS.DATE = TODAY
DAY.COUNT = "-3W"
CALL CDT('', PROCESS.DATE, DAY.COUNT)

=> gives PROCESS.DATE = 20140603

Check if a day is open or a banking holiday

Example with “date_to_check” which can be the next open day if it’s a banking holiday:

COUNTRY.CODE = ''
COUNTRY.CODE = R.COMPANY(EB.COM.LOCAL.COUNTRY)
RETURN.CODE = ""
CALL WORKING.DAY('',date_to_check;,'','','',COUNTRY.CODE,'','',RETURN.CODE,'')
IF RETURN.CODE = 0 THEN
(...)
END ELSE
ADJ.MAT.DATE = date_to_check
CALL CDT('',ADJ.MAT.DATE,'+1W')
(...)
END

2 of 2 17/09/2015 11:09 AM