1. 概述
在本教程中,我们将演示几种在Java中确定给定年份是否为闰年的方法。
闰年是指能被4和400整除而没有余数的年份,因此,能被100整除但不能被400整除的年份不符合闰年条件,即使它们能被4整除。
2. 使用Java 8之前的Calendar API
从Java 1.1开始,GregorianCalendar类允许我们检查某一年份是否是闰年:
public boolean isLeapYear(int year);
正如我们所料,如果给定的年份是闰年,则此方法返回true,如果给定的年份是非闰年,则返回false。
公元前(BC)年份需要以负值形式传递,计算公式为1 - 年。例如,公元前3年表示为-2,因为1 - 3 = -2。
3. 使用Java 8+日期/时间API
Java 8引入了java.time包,它具有更好的日期和时间API。
java.time包中的Year类有一个静态方法来检查给定的年份是否是闰年:
public static boolean isLeap(long year);
它也有一个实例方法来做同样的事情:
public boolean isLeap();
4. 使用Joda-Time API
Joda-Time API是Java项目中用于日期和时间实用程序的最常用第三方库之一,自Java 8以来,该库处于可维护状态,如Joda-Time GitHub源代码库中所述。
Joda-Time没有预定义的API方法来查找闰年,但是,我们可以使用LocalDate和Days类来检查闰年:
LocalDate localDate = new LocalDate(2020, 1, 31);
int numberOfDays = Days.daysBetween(localDate, localDate.plusYears(1)).getDays();
boolean isLeapYear = (numberOfDays > 365) ? true : false;
5. 总结
在本教程中,我们了解了什么是闰年、查找闰年的逻辑以及可以用来检查闰年的几个Java API。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章
