# Java : Calculate Leap Year and Number of days in a Year

Below program shows you how to calculate or check if a year is leap year or not and how to check number of days in a year.

## Check if year is Leap Year and Number of Days

The algorithm to check if given year is leap year or not is as follows

• If year is divisible by 400 then it is leap year.
• OR
• If year is divisible by 4 but not by 100, then it is leap year.

### CalculateLeapYearExample.java

```package com.sneppets.example;

import java.time.LocalDate;

public class CalculateLeapYearExample {

public static final Integer LAST_DOY_LEAP_YEAR = 366;
public static final Integer LAST_DOY = 365;

public static void main (String[] args) {

LocalDate date = LocalDate.now();
System.out.println("Today's Date : " + date);
System.out.println("Year : " + date.getYear());
System.out.println("Leap Year ? " + checkLeapYear(date.getYear()));
System.out.println("Number of days : " + getNumberOfDays(date.getYear()));
}

private static boolean checkLeapYear(int year) {

//Algorithm
//If year is divisible by 400 then it is leap year
//OR
//If year is divisible by 4 but not by 100, then it is leap year

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

private static int getNumberOfDays(int year) {

if(checkLeapYear(year)) {
return LAST_DOY_LEAP_YEAR;
}else {
return LAST_DOY;
}
}

}
```

Output

```Today's Date : 2020-02-09
Year : 2020
Leap Year ? true
Number of days : 366```

Note, a leap year is a calendar year that contains an additional day. For example, in the Gregorian calendar, each leap year has 366 days instead of 365 days by adding additional one day to February month (29 days instead of 28 days). These extra days occur in years that are calculated as leap year using the algorithm above.

### References 