Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Business date calculation

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL
View previous topic :: :: View next topic  
Author Message
Deepa.m
Warnings : 1

New User


Joined: 28 Apr 2005
Posts: 99

PostPosted: Wed Dec 12, 2007 4:50 pm    Post subject: Business date calculation
Reply with quote

Hi all ,

Is there any option to get the buisness date ? and my requirement is

1-----------------------------------------------------80
<file name>, count , today's date , today's date -1

aaaa.ddd.cccc, 96,20071202,20071130

How to calculate today's date - 1 and that should be business day( leaving sat/sun)

i used the below card
Code:

  OPTION COPY                                       
  OUTFIL TRAILER1=(FNAME,45:',',                   
    DATENS=(4MD),',',COUNT=(M10,LENGTH=8),',',DATE1-1),
    NODETAIL,REMOVECC
Back to top
View user's profile Send private message

murmohk1

Senior Member


Joined: 29 Jun 2006
Posts: 1439
Location: Bangalore,India

PostPosted: Wed Dec 12, 2007 6:06 pm    Post subject:
Reply with quote

Deepa,

Quote:
How to calculate today's date - 1 and that should be business day( leaving sat/sun)

Please remember 'Business days' are not standard across projects/shops.

You need to come with your 'own logic' which suits for your requirement. DONT EXPECT any generalized solution for this.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Wed Dec 12, 2007 10:27 pm    Post subject:
Reply with quote

Quote:
How to calculate today's date - 1 and that should be business day( leaving sat/sun)


You mean if DATE-1 is a sat or sun, you want to use the previous Friday's date?

DFSORT does not have any built-in functions for doing that.
Back to top
View user's profile Send private message
Deepa.m
Warnings : 1

New User


Joined: 28 Apr 2005
Posts: 99

PostPosted: Mon Dec 17, 2007 2:45 pm    Post subject:
Reply with quote

Yes. I meant the same.

I just want to avoid sat and sun .Geography specific Holidays doesn't matter.

Moreover even to get previous day (DATE1-1) with the above code I am getting the below error

Code:

ICE280I 1 ORIGINAL STATEMENTS FROM SYSIN    FOLLOW                   
           OPTION COPY                                               
           OUTFIL TRAILER1=(FNAME,45:',',                             
           DATENS=(4MD),',',COUNT=(M10,LENGTH=8),',',DATE1-1),       
           NODETAIL,REMOVECC                                         
ICE282I 0 PERFORMING SYMBOL SUBSTITUTION AS NEEDED                   
           OUTFIL TRAILER1=(FNAME,45:',',                             
           DATENS=(4MD),',',COUNT=(M10,LENGTH=8),',',DATE1-1),       
                                                     $               
ICE283A 0 SYMBOL, SYNTAX OR DELIMITER ERROR                           
           NODETAIL,REMOVECC 


Can we do date manipulations using DATE in Trailer because I tried the DATE1-1 with outrec and it is working fine.
Back to top
View user's profile Send private message
murmohk1

Senior Member


Joined: 29 Jun 2006
Posts: 1439
Location: Bangalore,India

PostPosted: Mon Dec 17, 2007 2:53 pm    Post subject:
Reply with quote

Deepa,

Quote:
OUTFIL TRAILER1=(FNAME,45:',',

What happend to 'c' after '45:'?
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Mon Dec 17, 2007 9:35 pm    Post subject:
Reply with quote

Deepa,

Quote:
Can we do date manipulations using DATE in Trailer because I tried the DATE1-1 with outrec and it is working fine.



You can use DATE1-1 in BUILD and OVERLAY of the INREC, OUTREC and OUTFIL statements, but you can't use it in TRAILER1.

Murali,

C before a constant is optional in TRAILER1. ',' and C',' are equivalent in TRAILER1.
Back to top
View user's profile Send private message
Skolusu

Senior Member


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

PostPosted: Mon Dec 17, 2007 9:52 pm    Post subject: Reply to: business date calculation.
Reply with quote

The following DFSORT JCL will give you the desired results. The Control cards calculate the day of the week and if it is sat/sun/mon then it picks the last friday date.

Code:

//STEP0100 EXEC PGM=ICEMAN                                           
//SYSOUT   DD SYSOUT=*                                             
//SYMNAMES DD *                                                     
FNAME,C'INPUT FILENAME'                                             
//SORTIN   DD DSN=your input file,
//            DISP=SHR
ABCDEFGHIJKLMNOPQRSTUVWXYZ                                         
//SORTOUT  DD DSN=&&T1,DISP=(,PASS),SPACE=(TRK,(1,1))     
//SYSIN    DD *                                                     
  OPTION COPY                                                       
  OUTREC OVERLAY=(81:DATE1,C',',DATE1-1,C',',DATE1-2,C',',DATE1-3) 
  OUTFIL REMOVECC,NODETAIL,                                         
  TRAILER1=(01:FNAME,45:C',',COUNT=(M10,LENGTH=8),',',81,35)       
//*                                               
//STEP0200 EXEC PGM=ICEMAN                                   
//SYSOUT   DD SYSOUT=*                                     
//SORTIN   DD DSN=&&T1,DISP=SHR                   
//SORTOUT  DD SYSOUT=*                                     
//SYSIN    DD *                                           
 OPTION COPY,NOSZERO                                       
 INREC IFTHEN=(WHEN=INIT,                                 
      OVERLAY=(101:55,04,ZD,MOD,+4,EDIT=(T),               
               102:55,04,ZD,MOD,+100,EDIT=(TTT),           
               105:55,04,ZD,MOD,+400,EDIT=(TTT)),HIT=NEXT),
       IFTHEN=(WHEN=(105,3,ZD,EQ,0,OR,                     
                    (101,1,ZD,EQ,0,AND,102,3,ZD,GT,0)),   
      OVERLAY=(108:C'L'),HIT=NEXT),                       
                                                           
       IFTHEN=(WHEN=(59,02,ZD,EQ,01,AND,                   
                     61,02,ZD,GT,31),                     
      OVERLAY=(110:C'INVALID'),HIT=NEXT),                 
                                                           
       IFTHEN=(WHEN=(108,01,CH,NE,C'L',AND,               
                     059,02,ZD,EQ,02,AND,                 
                     061,02,ZD,GT,28),                     
      OVERLAY=(110:C'INVALID'),HIT=NEXT),                 
                                                           
       IFTHEN=(WHEN=(108,01,CH,EQ,C'L',AND,               
                     059,02,ZD,EQ,02,AND,                 
                     061,02,ZD,GT,29),                     
      OVERLAY=(110:C'INVALID'),HIT=NEXT),                 
                                                           
       IFTHEN=(WHEN=(59,02,ZD,EQ,03,AND,     
                     61,02,ZD,GT,31),       
      OVERLAY=(110:C'INVALID'),HIT=NEXT),   
                                             
       IFTHEN=(WHEN=(59,02,ZD,EQ,04,AND,     
                     61,02,ZD,GT,30),       
      OVERLAY=(110:C'INVALID'),HIT=NEXT),   
                                             
       IFTHEN=(WHEN=(59,02,ZD,EQ,05,AND,     
                     61,02,ZD,GT,31),       
      OVERLAY=(110:C'INVALID'),HIT=NEXT),   
                                             
       IFTHEN=(WHEN=(59,02,ZD,EQ,06,AND,     
                     61,02,ZD,GT,30),       
      OVERLAY=(110:C'INVALID'),HIT=NEXT),   
                                             
       IFTHEN=(WHEN=(59,02,ZD,EQ,07,AND,     
                     61,02,ZD,GT,31),       
      OVERLAY=(110:C'INVALID'),HIT=NEXT),   
                                             
       IFTHEN=(WHEN=(59,02,ZD,EQ,08,AND,     
                     61,02,ZD,GT,31),       
      OVERLAY=(110:C'INVALID'),HIT=NEXT),   
                                             
       IFTHEN=(WHEN=(59,02,ZD,EQ,09,AND,     
                     61,02,ZD,GT,30),       
      OVERLAY=(110:C'INVALID'),HIT=NEXT),   
                                             
       IFTHEN=(WHEN=(59,02,ZD,EQ,10,AND,     
                     61,02,ZD,GT,31),       
      OVERLAY=(110:C'INVALID'),HIT=NEXT),   
                                             
       IFTHEN=(WHEN=(59,02,ZD,EQ,11,AND,     
                     61,02,ZD,GT,30),       
      OVERLAY=(110:C'INVALID'),HIT=NEXT),   
                                             
       IFTHEN=(WHEN=(59,02,ZD,EQ,12,AND,                         
                     61,02,ZD,GT,31),                             
      OVERLAY=(110:C'INVALID'),HIT=NEXT),                         
                                                                 
       IFTHEN=(WHEN=(59,02,ZD,GT,12,OR,                           
                     55,04,ZD,LT,1600,OR,                         
                     55,04,ZD,GT,9999),                           
      OVERLAY=(110:C'INVALID'),HIT=NEXT),                         
                                                                 
       IFTHEN=(WHEN=NONE,                                         
      OVERLAY=(110:7X))                                           
                                                                 
   OUTREC IFTHEN=(WHEN=(110,07,CH,EQ,C' ',AND,                     
                      059,02,ZD,LT,3),                           
      OVERLAY=(120:+01,SUB,55,04,ZD,EDIT=(TTTT),                 
               124:+10,ADD,59,02,ZD,EDIT=(TT)),HIT=NEXT),         
        IFTHEN=(WHEN=(110,07,CH,EQ,C' ',AND,                     
                      59,02,ZD,GE,3),                             
      OVERLAY=(120:55,04,                                         
               124:+02,SUB,59,02,ZD,EDIT=(TT)),HIT=NEXT),         
        IFTHEN=(WHEN=(110,07,CH,EQ,C' '),                         
      OVERLAY=(127:120,4,ZD,DIV,+100,EDIT=(TTTT),                 
               131:120,4,ZD,MOD,+100,EDIT=(TT),                   
               135:((+26,MUL,124,2,ZD),SUB,+2),DIV,+10,LENGTH=8, 
               143:135,8,SFF,ADD,                                 
                   061,2,ZD,ADD,                                 
                   131,2,ZD,LENGTH=8,                             
               151:143,8,SFF,ADD,                                 
                   (131,2,ZD,DIV,+4),ADD,                         
                   (127,4,ZD,DIV,+4),                             
                   LENGTH=8,                                     
               159:(151,8,SFF,SUB,                               
                   (+2,MUL,127,4,ZD)),MOD,+7,LENGTH=8),HIT=NEXT),
        IFTHEN=(WHEN=(159,8,SFF,LT,0),                           
       OVERLAY=(170:+7,ADD,159,8,SFF,EDIT=(T)),HIT=NEXT),         
        IFTHEN=(WHEN=(159,8,SFF,GE,0),                           
       OVERLAY=(170:159,8,SFF,EDIT=(T)))   

   OUTFIL IFOUTLEN=71,                         
        IFTHEN=(WHEN=(110,07,CH,EQ,C' ',AND,
                      170,01,CH,EQ,C'0'),   
       BUILD=(01,63,73,8)),                 
        IFTHEN=(WHEN=(110,07,CH,EQ,C' ',AND,
                      170,01,CH,EQ,C'1'),   
       BUILD=(01,63,82,8)),                 
        IFTHEN=(WHEN=NONE,                   
       BUILD=(01,71))                       
/*                                                                 
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 -> DFSORT/ICETOOL All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

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

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us