>> The date begins in column 1 and is 10 characters long. I know I want to use
>> the SUBDAYS function. I am looking at the DFSORT Programmer Guide. But I
>> learn best by example.
Richard,
Your input date has separators and DFSORT date arithmetic functions works on
date without separators. So, we just need to strip off the separators and then
apply the SUBDAYS function.
I assumed your input has RECFM=FB and LRECl=80 and you want to subtract 35 days
from the input. We first strip off the separators and put that date a temp
location (81) and then apply the subdays function on that. Here is a sample.
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
2024/04/09 - CURR DATE
2024/02/28 - NON LEAP YEAR DATE
2024/02/29 - LEAP YEAR DATE
2007/02/29 - INVALID DATE
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INREC IFOUTLEN=80,
IFTHEN=(WHEN=INIT,
OVERLAY=(81:01,10,UFF,M11,LENGTH=8,
01:81,8,Y4T,SUBDAYS,+35,TOGREG=(Y4T(/))))
/*
The output from the above is.
2024/03/05 - CURR DATE
2024/01/24 - NON LEAP YEAR DATE
2024/01/25 - LEAP YEAR DATE
********** - INVALID DATE
Note that the last record has an invalid date and that subdays function
replaced it with asterisks.
Thanks,
Kolusu
DFSORT Development
IBM Corporation
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN