Leap year in Java

A leap year is a 366-day year, which is one day longer than a normal year. This additional day comes is in February, where February is 29 days compared to the usual 28 days. Leap year comes in an interval of four years.

A year is leap year if the below conditions are satisfied:

  • Year is multiple of 400.
  • Year is multiple of 4 and not multiple of 100.

Example – Check a year is a leap year or not

public class LeapYear {

  public static void isLeapYear(int year) {

    if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) {
      System.out.println("Year " + year + " is a leap year");
    } else {
      System.out.println("Year " + year + " is not a leap year");
      System.out.println();
    }

  }

  public static void main(String[] args) {
    LeapYear.isLeapYear(2012);

    LeapYear.isLeapYear(2016);

    LeapYear.isLeapYear(2020);

    LeapYear.isLeapYear(2021);

  }
}

Output

Year 2012 is a leap year
Year 2016 is a leap year
Year 2020 is a leap year
Year 2021 is not a leap year

Example – Check a year is a leap year or not using Java library method

The calendar class has a utility method that returns the maximum number of days in a year that you can use to check if it is less than 365.

import java.util.Calendar;

public class LeapYear {

  public static void isLeapYear(int year) {
    boolean result = false;
    Calendar cal = Calendar.getInstance(); 
    cal.set(Calendar.YEAR, year); // setting year in to calendar
    int noOfDays = cal.getActualMaximum(Calendar.DAY_OF_YEAR);

    if (noOfDays > 365) {
      result = true;
    }

    if (result) {
      System.out.println("Year " + year + " is a leap year");
    } else {
      System.out.println("Year " + year + " is not a leap year");
      System.out.println();
    }

  }

  public static void main(String[] args) {

    LeapYear.isLeapYear(2012);

    LeapYear.isLeapYear(2016);

    LeapYear.isLeapYear(2020);

    LeapYear.isLeapYear(2021);

  }
}

Output

Year 2012 is a leap year
Year 2016 is a leap year
Year 2020 is a leap year
Year 2021 is not a leap year