JavaでLe年を見つける

1. 概要

このチュートリアルでは、特定の年がJavaでhttps://en.wikipedia.org/wiki/Leap_year [うるう年]であるかどうかを判断するいくつかの方法を示します。
*うるう年とは、4と400で割り切れる年で、余りはありません*。 したがって、4で割り切れる場合でも、100で割り切れるが400で割り切れない年は資格がありません。

2. * Java-8以前のカレンダーAPIの使用*

Java 1.1以降、link:/java-gregorian-calendar[_GregorianCalendar_]クラスにより、年がうるう年かどうかを確認できます。
public boolean isLeapYear(int year);
予想どおり、このメソッドは、指定された年がうるう年の場合は_true_を、うるう年以外の場合は_false_を返します。
  • BCの年(キリストより前)は負の値として渡される必要があり、1 – _year_として計算されます。 たとえば、紀元前3年は、-1 – 3 = -2であるため、-2と表されます。

3. * Java 8 Date / Time APIの使用*

Java 8では、_java _._ time_パッケージに、より優れたlink:/java-8-date-time-intro[Date and Time API]が導入されました。
_java _._ time_パッケージのhttps://docs.oracle.com/javase/8/docs/api/java/time/Year.html[_Year_]クラスには、特定の年がうるう年かどうかを確認する_static_メソッドがあります:
public static boolean isLeap(long year);
また、同じことを行うインスタンスメソッドもあります。
public boolean isLeap();

4. * Joda-Time APIの使用*

link:/joda-time[Joda-Time API]は、日時ユーティリティ用のJavaプロジェクトの中で最も使用されているサードパーティライブラリの1つです。 Java 8以降、*このライブラリは、https://github.com/JodaOrg/joda-time#joda-time [Joda-Time GitHubソースリポジトリ]で説明されているように、保守可能な状態*にあります。
Joda-Timeでうるう年を見つけるための事前定義されたAPIメソッドはありません。 ただし、_https://www.joda.org/joda-time/apidocs/org/joda/time/LocalDate.html [LocalDate] _および_https://www.joda.org/joda-time/を使用できます。うるう年を確認するapidocs / org / joda / time / Days.html [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を見てきました。
いつものように、コードスニペットはhttps://github.com/eugenp/tutorials/tree/master/core-java-modules/core-java[GitHubで]にあります。