IDENTIFICATION DIVISION. 00010000
PROGRAM-ID. PRG. 00020000
ENVIRONMENT DIVISION. 00030000
DATA DIVISION. 00040000
WORKING-STORAGE SECTION. 00050000
01 WS-LSD PIC X(10). 00060000
01 WS-LED PIC X(10). 00070004
01 WS-MC1 PIC 9(4). 00070205
01 WS-MC PIC 9(4). 00070305
01 WS-YYY PIC 9(4). 00070406
01 WS-MONTH-DAYS PIC 9(2). 00070505
01 WS-DATEDIFF. 00071000
02 WS-DD PIC 9(2). 00072000
02 WS-MM PIC 9(2). 00073000
02 WS-YY PIC 9(4). 00074000
01 WS-DATEDIFF1. 00075001
02 WS-DD1 PIC 9(2). 00075101
02 WS-MM1 PIC 9(2). 00075201
02 WS-YY1 PIC 9(4). 00075301
01 WS-DATEDIFF2 PIC 9(4). 00076005
01 WS-DATEDIFF3 PIC 9(4). 00076105
01 WS-VAR PIC 9(2).
01 WS-VAR1 PIC 9(4).
01 WS-DATEDIFF4 PIC 9(4). 00079005
PROCEDURE DIVISION. 00080000
MOVE '29/02/2012' TO WS-LSD 00081005
MOVE '08/03/2012' TO WS-LED 00082005
MOVE WS-LSD(1:2) TO WS-DD 00090005
MOVE WS-LED(1:2) TO WS-DD1 00091001
DISPLAY 'WS-DD:' WS-DD 00091105
DISPLAY 'WS-DD1:' WS-DD1 00091205
MOVE WS-LSD(4:2) TO WS-MM 00091305
MOVE WS-LED(4:2) TO WS-MM1 00091405
DISPLAY 'WS-MM:' WS-MM 00091505
DISPLAY 'WS-MM1:' WS-MM1 00091605
MOVE WS-LSD(7:4) TO WS-YY 00091706
MOVE WS-LED(7:4) TO WS-YY1 00091806
DISPLAY 'WS-YY:' WS-YY 00091906
DISPLAY 'WS-YY1:' WS-YY1 00092006
PERFORM PRGM-PARA THRU PRGM-PARA-EXIT. 00092105
STOP RUN. 00092205
PRGM-PARA. 00092305
IF (WS-MM = WS-MM1) 00092405
SUBTRACT WS-DD FROM WS-DD1 GIVING WS-DATEDIFF2 00092505
ADD 1 TO WS-DATEDIFF2 GIVING WS-DATEDIFF4 00092605
DISPLAY WS-DATEDIFF4 00092705
ELSE
DIVIDE WS-YY BY 4 GIVING WS-VAR1 REMAINDER WS-VAR
PERFORM MONTH-DAYS THRU MONTH-DAYS-EXIT 00093005
MOVE WS-MONTH-DAYS TO WS-MC 00093105
DISPLAY 'WS-MC:' WS-MC 00093205
SUBTRACT WS-DD FROM WS-MC GIVING WS-MC1 00093305
DISPLAY 'WS-MC1:' WS-MC1 00093405
ADD WS-MC1 TO WS-DD1 GIVING WS-DATEDIFF3
DISPLAY 'THE DATE DIFFRANCE IS:' WS-DATEDIFF3 00093606
PERFORM YEAR-PARA THRU YEAR-PARA-EXIT 00093706
END-IF. 00104105
PRGM-PARA-EXIT. 00104205
EXIT. 00104305
YEAR-PARA.
IF WS-DATEDIFF3 <=5
IF WS-YY1 = WS-YY 00105406
DISPLAY 'LEAVE APPROVED SUCCESFUL' 00105506
ELSE
DISPLAY 'U CAN APPLY LEAVE FOR THIS YEAR ONLY'
END-IF
ELSE
DISPLAY 'LEAVE CANNOT BE APPROVED'
END-IF.
YEAR-PARA-EXIT.
EXIT.
MONTH-DAYS. 00107005
EVALUATE WS-MM 00107105
WHEN 01 00107205
MOVE 31 TO WS-MONTH-DAYS
WHEN 02
IF (WS-VAR = 0)
MOVE 29 TO WS-MONTH-DAYS
ELSE
MOVE 28 TO WS-MONTH-DAYS
END-IF
WHEN 03 00109605
MOVE 31 TO WS-MONTH-DAYS 00109703
WHEN 04 00109805
MOVE 30 TO WS-MONTH-DAYS 00109903
WHEN 05 00110005
MOVE 31 TO WS-MONTH-DAYS 00111003
WHEN 06 00112005
MOVE 30 TO WS-MONTH-DAYS 00113003
WHEN 07 00114005
MOVE 31 TO WS-MONTH-DAYS 00115003
WHEN 08 00116005
MOVE 31 TO WS-MONTH-DAYS 00117003
WHEN 09 00118003
MOVE 30 TO WS-MONTH-DAYS 00119005
WHEN 10 00119105
MOVE 31 TO WS-MONTH-DAYS 00119205
WHEN 11 00119305
MOVE 30 TO WS-MONTH-DAYS 00119405
WHEN 12 00119505
MOVE 31 TO WS-MONTH-DAYS 00119605
WHEN OTHER 00119705
DISPLAY 'ENTER VALID DATE' 00119805
END-EVALUATE. 00120005
MONTH-DAYS-EXIT. 00121005
EXIT.