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

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


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
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
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

Senior Member


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

PostPosted: Sat Apr 14, 2012 1:55 pm
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

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Sat Apr 14, 2012 2:22 pm
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: 2501
Location: Atlanta, Georgia, USA

PostPosted: Sun Apr 15, 2012 8:54 am
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: 199
Location: UK

PostPosted: Mon Apr 16, 2012 3:34 pm
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
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
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
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
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 View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts Add week number to a file name or rep... JCL & VSAM 2
No new posts How to find the first monday of the w... COBOL Programming 10
No new posts A good week so far General Talk & Fun Stuff 2
No new posts Display DAY of Week using SYNCSORT SYNCSORT 1
No new posts check on current day of the Week JCL & VSAM 10
Search our Forums:

Back to Top