Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Yesterdays Day of the week(MON,TUE,....)

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
View previous topic :: :: View next topic  
Author Message
iniyavan555
Currently Banned

New User


Joined: 21 Feb 2012
Posts: 8
Location: india

PostPosted: Sat Apr 14, 2012 9:53 am    Post subject: Yesterdays Day of the week(MON,TUE,....)
Reply with quote

Hi All,

I need to Display the day of the week of the provious date.

Actaully my dataset will contain Yesterdays Data,I have to display the Data of the week along with the Yesterdays date.Is it Possuiblw thru JCL ,I need to avoid cobol.

Actaully todays date is 14/04,My dataset will contain 13/04

13/04/2012 xxxxx
13/04/2012 yyyyy

I have to display as

FRI 13/04/2012 xxxxx
FRI 13/04/2012 yyyyy


Thanks,
Shanth
Back to top
View user's profile Send private message

prino

Active Member


Joined: 07 Feb 2009
Posts: 984
Location: Oostende, Belgium

PostPosted: Sat Apr 14, 2012 1:55 pm    Post subject:
Reply with quote

JCL can only be used to direct the execution of programs, you cannot use it to fulfil your requirements. PERIOD!
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7232

PostPosted: Sat Apr 14, 2012 2:22 pm    Post subject: Reply to: Yesterdays Day of the week(MON,TUE,....)
Reply with quote

Why do you have to avoid Cobol? Some allergy?

Which Sort product do you have?

Look in its manual for date functions, and do some intelligent searching hear and with google for day mnemonics.
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2502
Location: Atlanta, Georgia, USA

PostPosted: Sun Apr 15, 2012 8:54 am    Post subject: Reply to: Yesterdays Day of the week(MON,TUE,....)
Reply with quote

You can probably do this using DATE Functions in a REXX exec....
Back to top
View user's profile Send private message
David Robinson

Active User


Joined: 21 Dec 2011
Posts: 175
Location: UK

PostPosted: Mon Apr 16, 2012 3:34 pm    Post subject:
Reply with quote

Indeed you can. The Rexx statement -

SAY DATE("W",'13/04/12',"E")

will return the value "Friday". You will need to drop the century from your input date and convert the output to "FRI".
Back to top
View user's profile Send private message
saiprasadh

Active User


Joined: 20 Sep 2006
Posts: 154
Location: US

PostPosted: Tue Apr 17, 2012 10:11 am    Post subject:
Reply with quote

Hi,

I mentioned sort card for DFSORT & SYNCSORT


DFSORT:


Code:
//STEP010  EXEC PGM=SORT                                     
//SORTIN   DD *                                               
13/04/2012 XXXXX                                             
13/04/2012 YYYYY                                             
/*                                                           
//SORTOUT  DD  SYSOUT=*                                       
//SYSOUT   DD SYSOUT=*                                       
//SYSIN    DD *                                               
  SORT FIELDS=COPY                                           
  INREC OVERLAY=(20:4,2,22:1,2,24:7,4)                       
  OUTREC FIELDS=(1:20,8,Y4W,WEEKDAY=CHAR3,4:X,5:1,16,80:X)   
/*                                                           


Output:

Code:

FRI 13/04/2012 XXXXX 
FRI 13/04/2012 YYYYY 


Sync Sort:

Code:
//STEP030  EXEC PGM=SORT                                         
//SORTIN   DD *                                                 
13/04/2012 XXXXX                                                 
13/04/2012 YYYYY                                                 
14/04/2012 YYYYY                                                 
15/04/2012 YYYYY                                                 
16/04/2012 YYYYY                                                 
/*                                                               
//SORTOUT  DD  SYSOUT=*                                         
//SYSOUT   DD SYSOUT=*                                           
//SYSIN    DD *                                                 
  SORT FIELDS=COPY                                               
  INREC OVERLAY(21:1,2,23:4,2,25:7,4,                           
                29:((21,2,ZD,ADD,                               
                   ((+13,MUL,(23,2,ZD,ADD,+1)),DIV,+5),         
                   ADD,                                         
                   (25,4,ZD,MOD,+100),                           
                   ADD,                                       
                   ((25,4,ZD,MOD,+100),DIV,+4),               
                   ADD,                                       
                   ((25,4,ZD,DIV,+100),DIV,+4)),               
                   SUB,                                       
                   (+2,MUL,(25,4,ZD,DIV,+100))),MOD,+7,       
                   80:X)                                       
  OUTREC IFTHEN=(WHEN=(43,1,ZD,EQ,0),                         
         BUILD=(1:C'SAT ',5:1,16,80:X)),                       
         IFTHEN=(WHEN=(43,1,ZD,EQ,1),                         
         BUILD=(1:C'SUN ',5:1,16,80:X)),                       
         IFTHEN=(WHEN=(43,1,ZD,EQ,2),                         
         BUILD=(1:C'MON ',5:1,16,80:X)),                       
         IFTHEN=(WHEN=(43,1,ZD,EQ,3),                         
         BUILD=(1:C'TUE ',5:1,16,80:X)),                       
         IFTHEN=(WHEN=(43,1,ZD,EQ,4),                         
         BUILD=(1:C'WED ',5:1,16,80:X)),                       
         IFTHEN=(WHEN=(43,1,ZD,EQ,5),                         
         BUILD=(1:C'THU ',5:1,16,80:X)),                       
         IFTHEN=(WHEN=(43,1,ZD,EQ,6),                         
         BUILD=(1:C'FRI ',5:1,16,80:X)) 
/*                                       


Output:

Code:
FRI 13/04/2012 XXXXX 
FRI 13/04/2012 YYYYY 
SAT 14/04/2012 YYYYY 
SUN 15/04/2012 YYYYY 
MON 16/04/2012 YYYYY 



Formula to find Day of the week is mentioned in below link

http://en.wikipedia.org/wiki/Zeller%27s_congruence
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Tue Apr 17, 2012 10:27 pm    Post subject:
Reply with quote

saiprasadh,

I am not sure if you got the Zeller's_congruence formula correct. can you run the same jobs once again with the following sample data and check if you get the right day of week against the current year calendar? icon_wink.gif

Code:

01/01/2012
01/02/2012
01/03/2012
01/04/2012
01/05/2012
01/06/2012
02/01/2012
02/02/2012
02/03/2012
02/04/2012
02/05/2012
03/01/2012
03/02/2012
03/04/2012
03/05/2012
04/02/2012
04/03/2012
04/04/2012
04/05/2012


You will end up getting 75 records with incorrect day of week for the current year 2012 using the formula you have shown above.
Back to top
View user's profile Send private message
saiprasadh

Active User


Joined: 20 Sep 2006
Posts: 154
Location: US

PostPosted: Wed Apr 18, 2012 2:57 am    Post subject:
Reply with quote

Hi Kolusu,

You are right i didn't select the right formula. Please find the sort card after correction

Code:
//STEP010  EXEC PGM=SORT                                               
//SORTIN   DD *                                                       
01/01/2012 XXXXX                                                       
01/02/2012 XXXXX                                                       
01/03/2012 XXXXX                                                       
01/04/2012 XXXXX                                                       
01/05/2012 XXXXX                                                       
01/06/2012 XXXXX                                                       
02/01/2012 XXXXX                                                       
02/02/2012 XXXXX                                                       
02/03/2012 XXXXX                                                       
02/04/2012 XXXXX                                                       
02/05/2012 XXXXX                                                       
03/01/2012 XXXXX                                                       
03/02/2012 XXXXX                                                       
03/04/2012 XXXXX                                                       
03/05/2012 XXXXX                                                       
04/02/2012 XXXXX                                                     
04/03/2012 XXXXX                                                     
04/04/2012 XXXXX                                                     
04/05/2012 XXXXX                                                     
/*                                                                   
//SORTOUT  DD  SYSOUT=*                                               
//SYSOUT   DD SYSOUT=*                                               
//SYSIN    DD *                                                       
  SORT FIELDS=COPY                                                   
  INREC IFTHEN=(WHEN=INIT,                                           
        OVERLAY(21:1,2,23:4,2,25:7,4,                                 
                29:(21,2,ZD,                                         
                   ADD,                                               
                   ((+26,MUL,(23,2,ZD,ADD,+1)),DIV,+10),             
                   ADD,                                               
                   25,4,ZD,                                           
                   ADD,                                               
                   (25,4,ZD,DIV,+4),                                 
                   ADD,                                               
                   (+6,MUL,(25,4,ZD,DIV,+100)),                       
                   ADD,                                   
                   (25,4,ZD,DIV,+400)),MOD,+7,             
                   80:X)),                                 
        IFTHEN=(WHEN=(4,2,ZD,EQ,1,OR,4,2,ZD,EQ,2),         
        OVERLAY(21:1,2,23:4,2,ZD,ADD,+12,TO=ZD,LENGTH=2,   
                25:7,4,ZD,SUB,+1,TO=ZD,LENGTH=4,           
                29:(21,2,ZD,                               
                   ADD,                                   
                   ((+26,MUL,(23,2,ZD,ADD,+1)),DIV,+10),   
                   ADD,                                   
                   25,4,ZD,                               
                   ADD,                                   
                   (25,4,ZD,DIV,+4),                       
                   ADD,                                   
                   (+6,MUL,(25,4,ZD,DIV,+100)),           
                   ADD,                                   
                   (25,4,ZD,DIV,+400)),MOD,+7,             
                80:X))                                     
   OUTREC IFTHEN=(WHEN=(43,1,ZD,EQ,0),                     
         BUILD=(1:C'SAT ',5:1,16,80:X)),                   
         IFTHEN=(WHEN=(43,1,ZD,EQ,1),   
         BUILD=(1:C'SUN ',5:1,16,80:X)),
         IFTHEN=(WHEN=(43,1,ZD,EQ,2),   
         BUILD=(1:C'MON ',5:1,16,80:X)),
         IFTHEN=(WHEN=(43,1,ZD,EQ,3),   
         BUILD=(1:C'TUE ',5:1,16,80:X)),
         IFTHEN=(WHEN=(43,1,ZD,EQ,4),   
         BUILD=(1:C'WED ',5:1,16,80:X)),
         IFTHEN=(WHEN=(43,1,ZD,EQ,5),   
         BUILD=(1:C'THU ',5:1,16,80:X)),
         IFTHEN=(WHEN=(43,1,ZD,EQ,6),   
         BUILD=(1:C'FRI ',5:1,16,80:X)) 
/*                                       



Output:

Code:
SUN 01/01/2012 XXXXX
WED 01/02/2012 XXXXX
THU 01/03/2012 XXXXX
SUN 01/04/2012 XXXXX
TUE 01/05/2012 XXXXX
FRI 01/06/2012 XXXXX
MON 02/01/2012 XXXXX
THU 02/02/2012 XXXXX
FRI 02/03/2012 XXXXX
MON 02/04/2012 XXXXX
WED 02/05/2012 XXXXX
TUE 03/01/2012 XXXXX
FRI 03/02/2012 XXXXX
TUE 03/04/2012 XXXXX
THU 03/05/2012 XXXXX
SAT 04/02/2012 XXXXX
SUN 04/03/2012 XXXXX
WED 04/04/2012 XXXXX
FRI 04/05/2012 XXXXX
Back to top
View user's profile Send private message
iniyavan555
Currently Banned

New User


Joined: 21 Feb 2012
Posts: 8
Location: india

PostPosted: Wed Apr 18, 2012 6:30 pm    Post subject: day of the week
Reply with quote

Hi Saiprasadh,

The code worked fine.

Thanks,
Shanth
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts How to find the first monday of the w... abdulrafi COBOL Programming 10 Fri Nov 25, 2016 3:24 pm
No new posts A good week so far Ed Goodman General Talk & Fun Stuff 2 Wed May 15, 2013 8:27 pm
No new posts Display DAY of Week using SYNCSORT Shaheen Kalokhe SYNCSORT 1 Mon Sep 24, 2012 1:02 pm
No new posts check on current day of the Week dick scherrer JCL & VSAM 10 Wed Jun 01, 2011 2:00 pm
No new posts Appending the day of the week at tghe... Raymond Sachs JCL & VSAM 5 Sat Nov 13, 2010 12:55 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us