date handling on the AS400, iSeries and System i.
CL, RPG and SQL routines are included which recognize dates in most any format, allow date arithmetic and return
the date in most any format. Click here for a list of all
formats that can be specified.
Two database tables are also included: DATEFILE and DATEYYMM. These tables contain date facts for the
fifty years between 1990 and 2039. These tables can be used in RPG (or any high level
language), Query/400 and SQL to translate a date from nearly any format to any other format.
1. Calculate Date (CalcDate) Command
| CalcDate RTNDATE(&RtnDate) DATE(*YESTERDAY) |
CalcDate RTNDATE(&RtnDate) DATE(*NEXT) unit(*day) DAY(*THU)
Calculated date might be in this week or next because unit(*day)
is default time unit. |
| CalcDate RTNDATE(&RtnDate) DATE(*NEXT) UNIT(*WEEK) DAY(*THU) |
CalcDate RTNDATE(&RtnDate) DATE(*THIS) UNIT(*MONTH)
DAY(*WRK) NBR(3) uom(*days)
Calculates 3rd working day (M-F) of this month |
CalcDate RTNDATE(&RtnDate) DATE(*THIS) UNIT(*MONTH)
DAY(*MON) NBR(3) UOM(*WEEKS)
Calculates 3rd Monday of this month |
| CalcDate RTNDATE(&RtnDate) DATE(*LAST) UNIT(*MONTH) DAY(15) |
| CalcDate RTNDATE(&RtnDate) DATE(*LAST) UNIT(*MONTH) DAY(*end) |
CalcDate RTNDATE(&RtnDate) DATE(*LAST) UNIT(*MONTH) DAY(*end)
RTNFMT(*JDE)
Calculates last month end and returns in JD Edwards
format |
CalcDate RTNDATE(&RtnDate) DATE(&SomeVar) FMT(*LOGPRO)
NBR(1) UOM(*WEEKS) RTNFMT(*JDE)
Takes LogPro date, add 7 days and returns in
JD Edwards format |
SRVPGM(DATESRVPGM) Exports
| Procedure |
Op |
Extended Factor 2 Expression |
Notes |
| CharToDec | CallP | CharToDec('12,345.67-' :ReturnNbr) |
Evals to -12345.670000000 |
| If | CharToDec(InString :ReturnNbr) = '1' |
If InString contains invalid number |
| CharToDate | CallP | CharToDate(CharDate :D_ISO :RtnDate) |
Char ISO date translated to DATE |
If | CharToDate(CharDate :D_MDY :RtnDate) = '1' |
If char *MDY0 date is invalid DATE value |
| DayName | Eval | Day = DayName() |
Evals to "*SUN"... |
| Eval | Day = DayName(ARdtmt :D_9) |
Evals to "Sunday"... |
| Eval | Day = DayName(ARdtmt :D_3) |
Evals to "Sun"... |
| If | DayName() = '*SUN' |
If today is Sunday |
| DayNameChar | Eval | Day = DayNameChar(ODchgd :D_MDY :D_3) |
Evals to "Sun"... |
| Eval | Day = DayNameChar(MLchgd :D_YMD :D_9) |
Evals to "Sunday"... |
| If | DayNameChar(CharDate :D_ISO) = '*SUN' |
If char ISO date is Sunday |
| DayNameDec | Eval | Day = DayNameDec(SHtrdj :D_JDE : D_4) |
Gets day name for JDE sales order date |
| DayOfWeek | Eval | DoW = DayOfWeek() |
Evals to 1-7 |
| Eval | DoW = DayOfWeek(NbrToDate(SHtrdj :D_JDE)) |
Gets day of week for JDE sales order date |
| If | DayOfWeek() = 1 |
If today is Sunday |
| DayOfWeekChar | Eval | DoW = DayOfWeekChar(ODcdat :D_MDY) |
Object created on: day of week |
| Eval | DoW = DayOfWeekChar(MLchgd :D_YMD) |
Member last chg: day of week |