IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Decscribe this REXX Date Function


IBM Mainframe Forums -> CLIST & REXX
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
abhijit.nayak01

Active User


Joined: 22 Mar 2009
Posts: 161
Location: South Africa

PostPosted: Mon Nov 09, 2009 11:46 pm
Reply with quote

Can you please describe the below line:

d = date("S",(date("B",year||right(month,2,"0")||"01","S")-1) ,"B")

Thanks,
Abhijit.
Back to top
View user's profile Send private message
prino

Senior Member


Joined: 07 Feb 2009
Posts: 1306
Location: Vilnius, Lithuania

PostPosted: Tue Nov 10, 2009 12:39 am
Reply with quote

Why don't you rewrite it yourself as two different calls to date and trace it? Holy sith, it would have taken you less time to try it than to post this question.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Tue Nov 10, 2009 1:03 am
Reply with quote

/good mood on

the statement gets the last day of the previous month

the syntax of the date function is in general ( metalanguage )

<output_date> = DATE(<output_date_format>,<input_date>, <input_date_format>)

S-format YYYYMMDD
B_format number of days since jan 01 0001

given the premises lets do some backward substitution
( d = date of the last day of the previous mont)

Code:
year = <some year>
month = <current month>
-- build the current month S date YYYYMM01
d_3 = year || right(month,2,"0") || "01"
-- convert to base format
d_2 = date("B",d_3,"S")
-- subtract one to get the last day of the previous month
d_1 = d_2 - 1
-- convert to S-format
d = date("S", d_1,"B")
Back to top
View user's profile Send private message
MBabu

Active User


Joined: 03 Aug 2008
Posts: 400
Location: Mumbai

PostPosted: Tue Nov 10, 2009 4:41 am
Reply with quote

I'm glad I didn't see a /good mood off tag icon_smile.gif
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Tue Nov 10, 2009 5:04 am
Reply with quote

Abhijit,

a couple hints for future code 'dis-assembly'.

1. REXX is similar to fortran in that you can have a single statement that contains umteen number of functions.

2. Open parenthesis '(' and closed parenthesis ')' ALLWAYS come in pairs. you never have an unequal number of parenthesis within a statement.

3. start with the innermost function/command and work outwards.

4. familiarize yourself with all the REXX most of the time you can differentiate a variable from a 'command'.

That was how Enrico was able to determine YEAR and MONTH

I would also memorize REXX general concepts

When in doubt, run a REXX Script to debug (TRACE) a statement.
Does not require a batch job, you can run them in your tso session.

/good mood off (for Mbabu)
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CLIST & REXX

 


Similar Topics
Topic Forum Replies
No new posts Compile Several JCL JOB Through one r... CLIST & REXX 4
No new posts Replacing 'YYMMDD' with date, varying... SYNCSORT 3
No new posts Running REXX through JOB CLIST & REXX 13
No new posts Error to read log with rexx CLIST & REXX 11
No new posts Modifying Date Format Using DFSORT DFSORT/ICETOOL 9
Search our Forums:

Back to Top