View previous topic :: View next topic
|
Author |
Message |
mssabirami
New User
Joined: 11 Feb 2008 Posts: 17 Location: Chennai
|
|
|
|
Hi,
The input date needs be converted into mm/dd/ccyy format.
Input --------------------->Expected output
11/7/2009-----------------> 11/07/2009
1/27/2009-----------------> 01/27/2009
1/1/2009-------------------> 01/01/2009
If the month or date is in single digit, '0' needs to be prefixed.
Is there any way to solve this using DFSORT? |
|
Back to top |
|
|
gcicchet
Senior Member
Joined: 28 Jul 2006 Posts: 1702 Location: Australia
|
|
|
|
Hi,
this is one way of achieving it
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
11/7/2009
1/27/2009
1/1/2009
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INREC IFTHEN=(WHEN=(3,1,CH,EQ,C'/',&,5,1,CH,EQ,C'/'),
BUILD=(1,3,C'0',4,6)),
IFTHEN=(WHEN=(2,1,CH,EQ,C'/',&,5,1,CH,EQ,C'/'),
BUILD=(C'0',1,9)),
IFTHEN=(WHEN=(2,1,CH,EQ,C'/',&,4,1,CH,EQ,C'/'),
BUILD=(C'0',1,2,C'0',3,6))
/*
|
Gerry |
|
Back to top |
|
|
mssabirami
New User
Joined: 11 Feb 2008 Posts: 17 Location: Chennai
|
|
|
|
Thanks Gerry. Its working.. |
|
Back to top |
|
|
Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
mssabirami,
Here is an alternative way of doing it
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
11/7/2009
1/27/2009
1/1/2009
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INREC PARSE=(%00=(ENDBEFR=C'/',FIXLEN=2),
%01=(ENDBEFR=C'/',FIXLEN=2),
%02=(FIXLEN=4)),
BUILD=(%00,UFF,EDIT=(TT),C'/',%01,UFF,EDIT=(TT),C'/',%02)
//* |
|
|
Back to top |
|
|
|
|