The example How do I check if a year is a leap year? use the java.util.Calendar
object to determine if a given year is a leap year. That was the way to do it using the old API before we have the Date and Time API introduced in Java 8.
Now, in the Java 8 API we can check if a given year is a leap year using a couple of ways. We can determine if a given date is in a leap year by calling the isLeapYear()
method of the java.time.LocalDate
class. While using the java.time.Year
class we can check is the given year if a leap year using the isLeap()
method.
The following code snippet will show you how to do it:
package org.kodejava.datetime;
import java.time.LocalDate;
import java.time.Month;
import java.time.Year;
import java.time.temporal.ChronoField;
public class YearIsLeapExample {
public static void main(String[] args) {
// Using the java.time.LocalDate class.
LocalDate now = LocalDate.now();
boolean isLeap = now.isLeapYear();
System.out.printf("Year %d, leap year = %s%n", now.getYear(), isLeap);
LocalDate date = LocalDate.of(2020, Month.JANUARY, 1);
isLeap = date.isLeapYear();
System.out.printf("Year %d, leap year = %s%n", date.getYear(), isLeap);
// Using the java.time.Year class.
Year year = Year.now();
isLeap = year.isLeap();
System.out.printf("Year %d, leap year = %s%n", year.getValue(), isLeap);
Year anotherYear = Year.of(2020);
isLeap = anotherYear.isLeap();
System.out.printf("Year %d, leap year = %s%n", anotherYear.get(ChronoField.YEAR), isLeap);
}
}
The code snippet will print out the following result:
Year 2021, leap year = false
Year 2020, leap year = true
Year 2021, leap year = false
Year 2020, leap year = true