Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref

Author Message
anjani shanker

New User

Joined: 26 Jan 2007
Posts: 37
Location: USA

 Posted: Thu Nov 27, 2008 1:32 am    Post subject: Date calculation in PL/I Hi, I have a scenario in which i have a date value, say X. X is usually any date which is in the middle of current month. No I have an array of size 5 in which i need to store a date which is would be last date of every next month. Like: X= 11/15/2008 then array should contain : A(1) = 12/31/2008 A(2) = 01/31/2009 A(3) = 02/28/2009 and so on ... Plz help me with how could this be implemented in PL1.

Robert Sample

Global Moderator

Joined: 06 Jun 2008
Posts: 8280
Location: Dubuque, Iowa, USA

 Posted: Thu Nov 27, 2008 2:17 am    Post subject: You could write your own function to do this in PL/1. Pass in X and get back the array -- but I don't know of any intrinsic functions to do this kind of date manipulation. If you have trouble with the code once you've written it, please let us know.
PeD

Active User

Joined: 26 Nov 2005
Posts: 456
Location: Belgium

Posted: Thu Nov 27, 2008 3:26 am    Post subject:

 Quote: No I have an array of size 5
?? What is this?
Garry Carroll

Senior Member

Joined: 08 May 2006
Posts: 1005
Location: Dublin, Ireland / Edinburgh, Scotland

 Posted: Thu Nov 27, 2008 3:01 pm    Post subject: Define two arrays, one for standard years and one for leap-years. Each array to contain the last possible date for each month in that year-type. Now, decide which of these arrays to use based on the YYYY portion of your date in X. Next, use the MM portion of the date in X to determine a starting point in that array. Populate your array of 5 elements starting at this point. You'll need to code around year-end, deciding whether next year is leap-year or not.... Hope this helps, Garry.
enrico-sorichetti

Global Moderator

Joined: 14 Mar 2007
Posts: 10456
Location: italy

 Posted: Thu Nov 27, 2008 3:14 pm    Post subject: Reply to: Date calculation in PL/I to make it general... split the source date in the components, year and month using the substring function and the concatenate function after this buid an auxiliary array with the char representation of the first day of the neded month + 1 for Your sample 11/15/2008 aux(1) = "20090101" aux(2) = "20090201" aux(3) = "20090301" aux(4) = "20090401" aux(5) = "20090501" after this you can build the final array by using the CEEDATE and CEEDAYS LE functions last day of month x = CEEDATE(CEEDAYS(first_day_of_month_x_plus_one)-1)) look at the manual for the proper use of CEEDATE family functions
 All times are GMT + 6 Hours
 Page 1 of 1

Search our Forum:

 Topic Author Forum Replies Posted Similar Topics Fetching data from JHS as per the cur... arunsoods All Other Mainframe Topics 4 Wed Nov 22, 2017 1:54 pm Date in where clause - Windows Karthikeyan Subbarayan DB2 9 Wed Nov 15, 2017 9:07 pm Compare yesterday's date to the one o... migusd SYNCSORT 11 Fri Sep 22, 2017 11:35 pm Validate the Date girishb2 DFSORT/ICETOOL 9 Tue Sep 19, 2017 1:12 am Julian Date to CICS ABSTTIME blayek CICS 3 Wed Aug 30, 2017 11:15 pm

 © 2003-2017 IBM MAINFRAME Software Support Division
 Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us