Joined: 28 Apr 2006 Posts: 2 Location: Phoenix, AZ
I have a REXX program written by someone else that extracts data from the RACF database and lists several dates. The date format in the output file comes out as yy.ddd, which is a Julian and/or Ordinal date.
The error message listed below shows my attempt at converting to mm/dd/yy format.
Here is the code that I have so far.
IF VUSER = SUBSTR(TAB.LINE#,1,4) THEN DO
KUSER = SUBSTR(TAB.LINE#,6,8)
USER = SUBSTR(TAB.LINE#,6,8)
NAME = SUBSTR(TAB.LINE#,19,20)
CREATDT = SUBSTR(TAB.LINE#,65,6) {this gets me yy.ddd}
CREATED = DATE('J',CREATDT,'U') {hope to get mm/dd/yy}
END
Here is the error message:
49 +++ CREATED = DATE('J',CREATDT,'U')
IRX0040I Error running V100#WSD, line 49: Incorrect call to routine
The ultimate goal is to convert yy.ddd to yyyy/mm/dd.
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
Code:
...
CREATYY = SUBSTR(TAB.LINE#,65,2)
CREATDDD = SUBSTR(TAB.LINE#,68,3)
PARSE VALUE DATE('S',CREATYY||CREATDDD,'J') WITH CCYY 5 MM 7 DD
CREATED = CCYY'/'MM'/'DD
...
1. A valid Julian date is defined as either YYDDD or CCYYDDD, without the dot.
2. You used the incorrect order for the DATE() function parameters. The required output date format is the first (and only required) parameter, followed by the input date, then by the input date format.
Joined: 28 Apr 2006 Posts: 2 Location: Phoenix, AZ
superk,
Thank you for the reponse, but try as I may, I continue to get the same error. I put the code is as you stated and below is the outcome. I don't know why the '5' and '7' exist in the PARSE statement, but I also tried it without and received the same error.
52 +++ PARSE VALUE DATE('S',CREATYY||CREATDDD,'J') WITH CCYY 5 MM 7 DD
IRX0040I Error running V100#WSD, line 52: Incorrect call to routine
IF VUSER = SUBSTR(TAB.LINE#,1,4) THEN DO
KUSER = SUBSTR(TAB.LINE#,6,8)
USER = SUBSTR(TAB.LINE#,6,8)
NAME = SUBSTR(TAB.LINE#,19,20)
CREATYY = SUBSTR(TAB.LINE#,65,2)
CREATDDD = SUBSTR(TAB.LINE#,68,3)
PARSE VALUE DATE('S',CREATYY||CREATDDD,'J') WITH CCYY 5 MM 7 DD
CREATED = CCYY'/'MM'/'DD
END