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

Converting date in format 25DEC10 to 2010/12/25


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
sagarnsydney

New User


Joined: 12 Dec 2008
Posts: 16
Location: sydney

PostPosted: Thu Dec 30, 2010 7:47 am
Reply with quote

I have a requirement to convert date from the format 25DEC10 to 2010/12/25.

Regards,
Sagar
Back to top
View user's profile Send private message
Guest







PostPosted: Thu Dec 30, 2010 10:39 am
Reply with quote

Hi Sagar,
I have come up with this solution:
Code:

//SORTIN   DD *                                               
25DEC10                                                       
//SORTOUT     DD SYSOUT=*                                     
//SYSIN    DD *                                               
  OPTION COPY                                                 
  INREC IFTHEN=(WHEN=(3,3,CH,EQ,C'JAN'),OVERLAY=(8:C'20',6,2, 
                C'/01/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'FEB'),OVERLAY=(8:C'20',6,2, 
                C'/02/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'MAR'),OVERLAY=(8:C'20',6,2, 
                C'/03/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'APR'),OVERLAY=(8:C'20',6,2, 
                C'/04/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'MAY'),OVERLAY=(8:C'20',6,2, 
                C'/05/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'JUN'),OVERLAY=(8:C'20',6,2, 
                C'/06/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'JUL'),OVERLAY=(8:C'20',6,2, 
                C'/07/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'AUG'),OVERLAY=(8:C'20',6,2, 
                C'/08/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'SEP'),OVERLAY=(8:C'20',6,2, 
                C'/09/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'OCT'),OVERLAY=(8:C'20',6,2, 
                C'/10/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'NOV'),OVERLAY=(8:C'20',6,2, 
                C'/11/',1,2)),                                 
        IFTHEN=(WHEN=(3,3,CH,EQ,C'DEC'),OVERLAY=(8:C'20',6,2, 
                C'/12/',1,2))                                 
  OUTREC BUILD=(8,10)                                         
/*                                                             


Assumption: Year after 2000.

Devil13
There definitely is a better solution
Back to top
sagarnsydney

New User


Joined: 12 Dec 2008
Posts: 16
Location: sydney

PostPosted: Tue Jan 04, 2011 7:18 am
Reply with quote

Hi devil13,

Thanks for quick response. Is there any other way using date predefined functions in SORT to achieve the result....

Sagar
Back to top
View user's profile Send private message
Skolusu

Senior Member


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

PostPosted: Wed Jan 05, 2011 12:54 am
Reply with quote

sagarnsydney,

There are no built-in functions to convert the date in text form. Here is another way of getting the desired results which also performs a date validity check.

Code:

//STEP0100 EXEC PGM=SORT                                     
//SYSOUT   DD SYSOUT=*                                       
//SORTIN   DD *                                             
25DEC10                                                     
//SORTOUT  DD SYSOUT=*                                       
//SYSIN    DD *                                             
  SORT FIELDS=COPY                                           
  INREC IFOUTLEN=80,                                         
  IFTHEN=(WHEN=INIT,OVERLAY=(81:3,3,1,2,6,2)),               
  IFTHEN=(WHEN=INIT,FINDREP=(STARTPOS=81,                   
          INOUT=(C'JAN',C'01',C'FEB',C'02',C'MAR',C'03',     
                 C'APR',C'04',C'MAY',C'05',C'JUN',C'06',     
                 C'JUL',C'07',C'AUG',C'08',C'SEP',C'09',     
                 C'OCT',C'10',C'NOV',C'11',C'DEC',C'12'))), 
  IFTHEN=(WHEN=INIT,OVERLAY=(81,6,Y2W,TOGREG=Y4T(/)))       
//*
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 -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts Replacing 'YYMMDD' with date, varying... SYNCSORT 3
No new posts Issues Converting From ZD to Signed N... DFSORT/ICETOOL 4
No new posts Populate last day of the Month in MMD... SYNCSORT 2
No new posts Modifying Date Format Using DFSORT DFSORT/ICETOOL 9
No new posts Need to convert date format DFSORT/ICETOOL 20
Search our Forums:

Back to Top