Java我怎么知道给定的一年是否是a年?

示例如何检查年份是否为a年?使用java.util.Calendar对象确定给定年份是否为a年。这是在Java 8中引入Date and Time API之前使用旧API的一种方法。

现在,在Java 8 API中,我们可以使用两种方法来检查给定年份是否为a年。我们可以通过调用类的isLeapYear()方法来确定给定的日期是否在a年中java.time.LocalDate。在使用java.time.Year该类时,我们可以使用该isLeap()方法检查给定年份(如果是a年)。

以下代码段将向您展示如何执行此操作:

package org.nhooo.example.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) {
        // 使用java.time.LocalDate类。
        LocalDate now = LocalDate.now();
        boolean isLeap = now.isLeapYear();
        System.out.printf("Year %d, leap year = %s%n", now.getYear(), isLeap);

        LocalDate date = LocalDate.of(2012, Month.JANUARY, 1);
        isLeap = date.isLeapYear();
        System.out.printf("Year %d, leap year = %s%n", date.getYear(), isLeap);

        // 使用java.time.Year类。
        Year year = Year.now();
        isLeap = year.isLeap();
        System.out.printf("Year %d, leap year = %s%n", year.getValue(), isLeap);

        Year anotherYear = Year.of(2012);
        isLeap = anotherYear.isLeap();
        System.out.printf("Year %d, leap year = %s%n", anotherYear.get(ChronoField.YEAR), isLeap);
    }
}

该代码段将打印出以下结果:

Year 2015, leap year = false
Year 2012, leap year = true
Year 2015, leap year = false
Year 2012, leap year = true