IDENTIFICATION DIVISION.
PROGRAM-ID. DATECALL.
AUTHOR. MARTIN OSULLIVAN.
* THIS PROGRAM WILL CONVERT A DATE FROM THE FORMAT DDMMCCYY
* TO JULIAN DATE CCYYDDD
* THIS IS THE MAIN PROGRAM
DATE-WRITTEN. 22/01/99.
DATE-COMPILED.
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-AS400.
OBJECT-COMPUTER. IBM-AS400.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FLAGS-ETC.
02 DATE-VALID-FLAG PIC X.
88 DATE-VALID VALUE "Y".
88 DATE-NOT-VALID VALUE "N".
01 MISCELLANEOUS-FLAGS.
03 SCREEN-RESPONSE PIC X(3).
88 WISH-TO-END VALUE "END".
01 DATE-STRING.
03 DAY-IN PIC X(2).
03 MONTH-IN PIC X(2).
03 YEAR-IN PIC X(4).
01 JULIAN-DATE.
03 YEAR-OUT PIC 9(4).
03 DAY-NUMBER PIC 9(3).
01 MESSAGES-ETC.
03 PROMPT-MESSAGE-00 PIC X(58)
VALUE " :*:*:*:*: DATE VALIDATION - PRESS ENTER TO RUN ".
03 PROMPT-MESSAGE-01 PIC X(58)
VALUE " OR - PRESS END TO END".
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM ASK-GO.
PERFORM WORK-1-ASK-MORE UNTIL WISH-TO-END.
STOP RUN.
ASK-GO.
DISPLAY PROMPT-MESSAGE-00.
DISPLAY PROMPT-MESSAGE-01.
ACCEPT SCREEN-RESPONSE.
WORK-1-ASK-MORE.
PERFORM WORK-1.
PERFORM ASK-GO.
WORK-1.
* PERFORM INITIALISE-VARS.
PERFORM GET-DATE.
PERFORM VALIDATE-DATE.
PERFORM POSS-CONVERT.
GET-DATE.
DISPLAY "ENTER IN THE DATE IN THE FORMAT DDMMCCYY".
ACCEPT DATE-STRING.
VALIDATE-DATE.
CALL "DATEVAL"
USING DATE-STRING, DATE-VALID-FLAG.
CANCEL "DATEVAL".
POSS-CONVERT.
IF DATE-VALID
PERFORM CONVERT-TO-JULIAN-AND-DISPLAY
ELSE
PERFORM DISPLAY-DATE-NOT-VALID.
CONVERT-TO-JULIAN-AND-DISPLAY.
CALL "JULIAN" USING DATE-STRING, JULIAN-DATE.
CANCEL "JULIAN".
PERFORM DISPLAY-VALID-DATE-AND-JULIAN.
DISPLAY-DATE-NOT-VALID.
DISPLAY "THE DATE ENTERED IN IS INVALID".
DISPLAY-VALID-DATE-AND-JULIAN.
DISPLAY "THE DATE YOU ENTERED WAS".
DISPLAY DATE-STRING.
DISPLAY "IT CONVERTED TO JULIAN DATE FORMAT IS".
DISPLAY JULIAN-DATE.
Link back to cobol page