2 Java Leap Year Programs with Examples


Leap year logic is the most asked question to students learning computer science and the Java Programming Language. There are many ways you can check if the inputted year is a leap year or not, but before we get started, let's understand what is a leap year.

What is a Leap Year?

A leap year is that year of the Gregorian calendar when we have an additional day in the year. It is also called as intercalary year or bissextile year. A Leap year will have 366 days instead of 365, this extra day is added to February - 29 days instead of 28.

Logic of identifying a Leap Year

A Year can be considered a leap year if the year is divisible by 4, also if that Year is divisible by 100 it should be also divisible by 400 to be a Leap year.

Some Examples to check Leap Years

Examples:

2019: 2019 is not divisible by 4, hence 2019 is not a leap year.
2020: 2020/4 = 0, 2020/100 is not true: So its a leap year.
1000: 2000/4 = 0, 1000/100=0 is not true, but 1000/400 is not 0, so its not a Leap year.

Java Leap year Examples
Java Leap year Examples

Java Code Example for Leap Year

Example 1:
package org.code2care;


/**
 *
 * This class demonstrate if a
 * year is a leap year or not
 *
 * Author: Code2care
 *
 */
public class LeapYearJava {

    public static void main(String[] args)  {

        int year = 1000;

        if(isLeapYear(year)) {
            System.out.println("Year " + year + " is a Leap Year!");
        } else {
            System.out.println("Year " + year + " is a not Leap Year!");
        }

    }

    /**
     *
     * Leap Year Logic:
     *
     *  Logic:
     *  if the year % 4 == 0
     *      if yes
     *       Check if the year % 100 == 0
     *          if yes
     *              3) Check if year % 400 == 0
     *          if no
     *              Not a Leap Year
     *      if no
     *              Its a Leap Year
     *  if no
     *      Its not a Leap Year
     *
     *
     *
     * @param year int value that represents a year
     * @return true is year is a leap year, else false
     */
    public static boolean isLeapYear(int year) {

        if (year % 4 == 0) {

            if (year % 100 == 0) {

                if (year % 400 == 0) {
                    return true;
                } else {
                    return false;
                }
            } else {
                return true;
            }

        } else {
            return false;
        }
    }
} 
Example 2:

This logic is much clearer to understand,

     /**
     *
     * If year % 4 ! = 0
     *      not leap year
     * else if year % 400 == 0
     *      leap year
     * else if year % 100 == 0
     *      not leap year
     * else
     *     leap year
     * 
     * @param year int value that represents a year
     * @return true is year is a leap year, else false
     */

    public static boolean isLeapYearLogic2(int year) {

        if (year % 4 != 0) {
            return false;
        } else if (year % 400 == 0) {
            return true;
        } else if (year % 100 == 0) {
            return false;
        } else {
            return true;
        }
    }


Have Questions? Post them here!





Hello there!,

You are using AdBlocker!

I am an independent developer trying to help fellow developers and students to resolve issues faced on a day-to-day basis, we 'Code to Care' . There is a lot of expenses involved in hosting and managing a website that's the reason we have ads.

A humble request to you to disable adBlocker on Code2care.org and support us pay our bills.

Thanks,
Cod2care - Line's of code for change.

To see contents reload page after unblocking
Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities. Students and Software Developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include Learnings, Video Tutorials, Code Snippets, Tips-n-tricks, How Tos, Blogs, Articles, etc. on various platforms like Windows, Mac, Linux, Mobile platforms, etc. Technologies/Languages like Java, Objective-C, PHP, .Net, Android, SharePoint, jQuery, HTML, CSS, etc.