Table of Contents
ToggleIn this article we will look into how to check if a year is leap year or not and also leap year program in Java. But first let’s look into definition of leap year.
What is a Leap Year?
A leap year is a year which has 366 days. The extra day is the 29th February. There is a leap year every four years.
Every leap year has following properties :
- A century year i.e. year ending with 00 like 1900 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.
So therefore, a century year should be divisible by 4 and 100 both whereas non-century year should be divisible only by 4.
Now let us see leap year program in java.
Leap Year Program In Java
Algorithm:
First, check if year is divisible by 4 or not i.e. year % 4 == 0
If no, return false as it is not a leap year.
If yes, we need to check if year is century year by checking remainder with 100 i.e year % 100 == 0
If it is a century year, check whether year is divisible by 400 or not.
If century year is divisible by 400, it is leap year else not.
If it is not century year, since we have already checked it is divisible by 4, hence it is leap year
Implementation:
// Leap Year Program In Java import java.io.*; // Class for leap-year dealing public class LeapYear { // Method to check leap year public static boolean isLeapYear(int year) { // Check if year is divisble by 4 if (year % 4 == 0) { // Check if it is century year or not if (year % 100 == 0) { // Check leap year for century year by dividing by 400 if (year % 400 == 0) return true; else return false; } // If it is not century year, since it is divisible by 4, it is leap year return true; } // since year is not divisble by 4, it is not leap year. return false; } public static void main(String[] args) { int year = 2000; if (isLeapYear(year)) System.out.println(year + " : Leap-year"); else System.out.println(year + " : Not Leap-year"); } }
Complexity: O(1)
Alternative Way 1
// Leap Year Program In Java import java.io.*; // Class for leap-year dealing public class LeapYear { // Method to check leap year public static void isLeapYear(int year) { //Checking leap year for Century Year if (year % 400 == 0) { System.out.println(year + " is a leap year"); } // Check if year was century or not. else if (year % 100 == 0) { System.out.println(year + " is not a leap year"); } // Checking leap year for non century year else if (year % 4 == 0) { System.out.println(year + " is a leap year"); } else { System.out.println(year + " is not a leap year"); } } public static void main(String[] args) { isLeapYear(2000); isLeapYear(1900); } }
Alternative Way 2
In this approach we will condense the all the if else conditions above to single statement.
- The condensed formula to check leap year will be (year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))
- The condition checks leap for century year (year % 400 == 0)
- And the condition checks for non century year ((year % 4 == 0) && (year % 100 != 0))
- If any of the above is true, it is leap year, else not
Implementation
// Leap Year Program In Java import java.io.*; // Class for leap-year dealing public class LeapYear { // Method to check leap year public static boolean isLeapYear(int year) { if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) { // check for century and non century year return true; } // If above condition not true, it is non leap year return false; } public static void main(String[] args) { int year = 2000; if (isLeapYear(year)) System.out.println(year + " : Leap-year"); else System.out.println(year + " : Not Leap-year"); } }
Conclusion
In this article we discussed various leap Year program in Java. So to conclude, a year if it is a century year should be divisible by 4 and 100 both whereas non-century year should be divisible only by 4 to be classified as leap year.
Got a question or just want to chat? Comment below or drop by our forums, where a bunch of the friendliest people you’ll ever run into will be happy to help you out!