$ SET SOURCEFORMAT"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.