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/Files``import` `java.io.*;`` ` `// Class for leap-year dealing``public` `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/Files``import` `java.io.*;`` ` `// Importing Scanner Class``import` `java.util.Scanner;`` ` `// Class to check leap-year or not``public` `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