Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to Conditional Logic
Conditional Logic | Beginner | COBOL

Leap Year Checker

Problem Description

Determine if a year is a leap year.

Expected Output

LEAP YEAR or NOT A LEAP YEAR

Hints

Leap year: divisible by 4, but not 100 unless also 400.

Solution

IDENTIFICATION DIVISION. PROGRAM-ID. LEAPYEAR. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-YEAR PIC 9(4). 01 WS-REM4 PIC 9(4). 01 WS-REM100 PIC 9(4). 01 WS-REM400 PIC 9(4). 01 WS-TEMP PIC 9(4). PROCEDURE DIVISION. DISPLAY "ENTER YEAR: ". ACCEPT WS-YEAR. DIVIDE WS-YEAR BY 4 GIVING WS-TEMP REMAINDER WS-REM4. DIVIDE WS-YEAR BY 100 GIVING WS-TEMP REMAINDER WS-REM100. DIVIDE WS-YEAR BY 400 GIVING WS-TEMP REMAINDER WS-REM400. IF WS-REM400 = 0 DISPLAY WS-YEAR " IS A LEAP YEAR" ELSE IF WS-REM100 = 0 DISPLAY WS-YEAR " IS NOT A LEAP YEAR" ELSE IF WS-REM4 = 0 DISPLAY WS-YEAR " IS A LEAP YEAR" ELSE DISPLAY WS-YEAR " IS NOT A LEAP YEAR" END-IF. STOP RUN.

Explanation:

Leap year if divisible by 400, OR (divisible by 4 AND not by 100).