C++ Program to Check if a Given Year is a Leap Year

06/04/2024 0 By indiafreenotes

Determining whether a specific year is a leap year is a common problem that serves as an excellent example to illustrate the application of conditional logic in C++. A leap year, which occurs every four years, adds an extra day to the calendar year, making it 366 days long instead of the usual 365. This adjustment is made to keep the calendar year synchronized with the astronomical year. The logic behind identifying a leap year is straightforward but requires careful consideration of several conditions.

Understanding the Problem

A year is a leap year if it is divisible by 4. However, years divisible by 100 are not leap years, unless they are also divisible by 400. This means that years like 2000 and 2400 are leap years, while years like 1800, 1900, and 2100 are not. The challenge lies in accurately implementing this logic in a C++ program.

Setting Up the Program

To begin, we include the necessary header file and use the standard namespace to facilitate input and output operations:

#include <iostream>

using namespace std;

This setup enables us to use cin for input and cout for output without constantly referring to the std namespace.

Soliciting User Input

The next step involves asking the user to input a year. This step is crucial as it involves interaction with the program’s user, making the program dynamic and capable of processing user-specific data.

int main() {

    int year;

    cout << “Enter a year: “;

    cin >> year;

Here, we declare an integer variable year to store the user’s input. The use of the int data type is appropriate because years are whole numbers.

Implementing Leap Year Logic

The essence of the program lies in the logic to determine if the input year is a leap year. This logic is implemented using conditional statements that check the criteria for a leap year.

    bool isLeapYear = false;

    if (year % 4 == 0) {

        if (year % 100 == 0) {

            if (year % 400 == 0) {

                isLeapYear = true;


        } else {

            isLeapYear = true;



    if (isLeapYear) {

        cout << year << ” is a leap year.” << endl;

    } else {

        cout << year << ” is not a leap year.” << endl;


    return 0;


In this code segment, we first declare a boolean variable isLeapYear and initialize it to false. This variable will later be used to store the result of our leap year check.

The leap year logic is then applied through a series of nested if statements. The outermost if checks whether the year is divisible by 4. Within this block, a nested if checks for divisibility by 100 to identify centennial years, which are generally not leap years unless they pass the additional condition of being divisible by 400, checked in another nested if.

Key Concepts illustrated

  • Conditional Logic and Nested if Statements:

This program illustrates how to employ nested if statements to evaluate multiple, related conditions. Proper structuring of these conditions is crucial for accurate outcomes.

  • Boolean Variables:

The use of a boolean variable to store the leap year check result demonstrates how boolean values can effectively represent binary states (true or false) in decision-making processes.

  • Modulus Operator:

The program makes extensive use of the modulus (%) operator to check for divisibility. Understanding and applying the modulus operator is fundamental in scenarios requiring division remainder evaluation.

  • User Input and Output:

By interacting with the user through prompts for input and providing feedback based on that input, the program exemplifies dynamic behavior adapting its execution to user-provided data.