Java Leap Year Program with Examples


Leap year logic is the most asked question to students learning computer science and the Java Programming Language. There are many ways you can check if the inputted year is a leap year or not, but before we get started lets understand what is a leap year.

What is a Leap Year?

A leap year is that year of the Gregorian calendar when we have a additional day in the year. It is also called as intercalary year or bissextile year. A Leap year will have 366 days instead of 365, this extra day is added to February - 29 days instead of 28.

Logic of identifying a Leap Year

A Year can be considered a leap year if the year is divisible by 4, also if that Year is divisible by 100 it should be also divisible by 400 to be a Leap year.

Some Examples to check Leap Years

Examples:

2019: 2019 is not divisible by 4, hence 2019 is not a leap year.
2020: 2020/4 = 0, 2020/100 is not true: So its a leap year.
1000: 2000/4 = 0, 1000/100=0 is not true, but 1000/400 is not 0, so its not a Leap year.

Java Leap year Examples
Java Leap year Examples

Java Code Example for Leap Year

Example 1:
package org.code2care;


/**
 *
 * This class demonstrate if a
 * year is an leap year or not
 *
 * Author: Code2care
 *
 */
public class LeapYearJava {

    public static void main(String[] args)  {

        int year = 1000;

        if(isLeapYear(year)) {
            System.out.println("Year " + year + " is a Leap Year!");
        } else {
            System.out.println("Year " + year + " is a not Leap Year!");
        }

    }

    /**
     *
     * Leap Year Logic:
     *
     *  Logic:
     *  if the year % 4 == 0
     *      if yes
     *       Check if the year % 100 == 0
     *          if yes
     *              3) Check if year % 400 == 0
     *          if no
     *              Not a Leap Year
     *      if no
     *              Its a Leap Year
     *  if no
     *      Its not a Leap Year
     *
     *
     *
     * @param year int value that represents a year
     * @return true is year is a leap year, else false
     */
    public static boolean isLeapYear(int year) {

        if (year % 4 == 0) {

            if (year % 100 == 0) {

                if (year % 400 == 0) {
                    return true;
                } else {
                    return false;
                }
            } else {
                return true;
            }

        } else {
            return false;
        }
    }
} 
Example 2:

This logic is much cleaner to understand,

     /**
     *
     * If year % 4 ! = 0
     *      not leap year
     * else if year % 400 == 0
     *      leap year
     * else if year % 100 == 0
     *      not leap year
     * else
     *     leap year
     * 
     * @param year int value that represents a year
     * @return true is year is a leap year, else false
     */

    public static boolean isLeapYearLogic2(int year) {

        if (year % 4 != 0) {
            return false;
        } else if (year % 400 == 0) {
            return true;
        } else if (year % 100 == 0) {
            return false;
        } else {
            return true;
        }
    }