A driver program for the date validation sub-program. Accepts a date from the user, passes it to the date validation sub-program and interprets and displays the result.
>>SOURCE FORMAT IS FREE
IDENTIFICATION DIVISION.
PROGRAM-ID. DateDriver.
AUTHOR. Michael Coughlan.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FILLER PIC 9 VALUE 0.
88 EndOfInput VALUE 1.
01 InputDateIn PIC 9(8).
01 ValidationResult PIC 9.
88 DateIsValid VALUE 0.
88 DateNotNumeric VALUE 1.
88 YearContainsZeros VALUE 2.
88 MonthContainsZeros VALUE 3.
88 DayContainsZeros VALUE 4.
88 MonthGreaterThan12 VALUE 5.
88 DayTooGreatForMonth VALUE 6.
PROCEDURE DIVISION.
Begin.
DISPLAY "Input Date as DDMMYYYY > " WITH NO ADVANCING
ACCEPT InputDateIn
CALL "Validate"
USING InputDateIn, ValidationResult.
DISPLAY "RESULT = " ValidationResult
DISPLAY "DATE IS NOW = " InputDateIn
EVALUATE TRUE
WHEN DateIsValid DISPLAY "Date is valid."
WHEN DateNotNumeric DISPLAY "Date is not numeric."
WHEN YearContainsZeros DISPLAY "Year contains all zeros."
WHEN MonthContainsZeros DISPLAY "Month contains all zeros."
WHEN DayContainsZeros DISPLAY "Day contains all zeros."
WHEN MonthGreaterThan12 DISPLAY "Month too great."
WHEN DayTooGreatForMonth DISPLAY "Day too great for month."
END-EVALUATE.
STOP RUN.