Related Articles
Java Program to Find if a Given Year is a Leap Year
• Last Updated : 02 Nov, 2020

Leap Year contains 366 days, which comes once every four years. Every leap year corresponds to these facts :

• A century year is a year ending with 00. A century year is a leap year only if it is divisible by 400.
• A leap year (except a century year) can be identified if it is exactly divisible by 4.
• A century year should be divisible by 4 and 100 both.
• A non-century year should be divisible only by 4.

Let’s find out whether a year is a leap year or not.

Without Using Scanner Class

As the name suggests here user is bound not to select a year of his choice. The following program illustrates the way to find out if a year is a leap year:

## Java

 // Java program to find a leap year  // Importing Classes/Filesimport java.io.*;  // Class for leap-year dealingpublic class GeeksforGeeks {      // Method to check leap year    public static void isLeapYear(int year)    {        // flag to take a non-leap year by default        boolean is_leap_year = false;          // If year is divisible by 4        if (year % 4 == 0) {              // To identify whether it             // is a century year or            // not            if (year % 100 == 0) {                                // Checking if year is divisible by 400                // therefore century leap year                if (year % 400 == 0) {                    is_leap_year = true;                }                  else {                    is_leap_year = false;                }            }              // Out of if loop that is Non century year            // but divisible by 4, therefore leap year            is_leap_year = true;        }          // We land here when corresponding if fails        // If year is not divisible by 4        else              // Flag dealing-  Non leap-year            is_leap_year = false;          if (!is_leap_year) {            System.out.println(year + " : Non Leap-year");        }          else {            System.out.println(year + " : Leap-year");        }    }      // Main Driver Code    public static void main(String[] args)    {        // Calling our function by        // passing century year        isLeapYear(2000);          // Calling our function by        // passing Non-century year        isLeapYear(2002);    }}

Output:

2000 : Leap-year
2002 : Non Leap-year

2000 is a century year divisible by 100 and 4. 2002 is not divisible by 4, therefore not a leap year.

Using Scanner Class

Here the user is provided the flexibility to enter the year of own choice as Scanner Class is imported here rest the if-else blocks are also combined in a single statement to check if the input year is a leap year. The following program illustrates the way to find out if a year is a leap year:

## Java

 // Java program to check Leap-year// by taking inuput from user  // Importing Classes/Filesimport java.io.*;  // Importing Scanner Classimport java.util.Scanner;  // Class to check leap-year or notpublic class GFG {        // Driver Main code    public static void main(String[] args)    {        // Considering any random year        int year;          // Taking input from user using Scanner Class        // scn is an object made of Scanner Class        Scanner scn = new Scanner(System.in);        year = scn.nextInt();          // 1st condition check- It is century leap year        // 2nd condition check- It is leap year and not        // century year        if ((year % 400 == 0)            || ((year % 4 == 0) && (year % 100 != 0))) {                        // Both conditions true- Print leap year            System.out.println(year + " : Leap Year");        }          else {            // Any condition fails- Print Non-leap year            System.out.println(year + " : Non - Leap Year");        }    }}

Input:

2012

Output:

2012 : Leap Year

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up