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.