Javaでうるう年を見つける
1. 概要
このチュートリアルでは、特定の年がJavaのうるう年であるかどうかを判断するいくつかの方法を示します。
うるう年とは、余りなしで4と400で割り切れる年です。 したがって、100で割り切れるが、400で割り切れない年は、4で割り切れる場合でも、資格がありません。
2. Pre- Java -8CalendarAPIの使用
Java 1.1以降、 GregorianCalendar クラスを使用すると、年がうるう年かどうかを確認できます。
public boolean isLeapYear(int year);
ご想像のとおり、このメソッドは、指定された年がうるう年の場合は true を返し、うるう年でない場合はfalseを返します。
紀元前(キリストの前)の年は負の値として渡す必要があり、1 –年として計算されます。 たとえば、紀元前3年は、1 – 3 = -2であるため、-2として表されます。
3. Java8+日付/時刻APIの使用
Java 8では、java。timeパッケージが導入され、 Date and TimeAPIが大幅に改善されました。
java。timeパッケージのクラスYearには、指定された年がうるう年であるかどうかを確認するstaticメソッドがあります。
public static boolean isLeap(long year);
また、同じことを行うためのインスタンスメソッドもあります。
public boolean isLeap();
4. Joda-TimeAPIの使用
Joda-Time API は、日付と時刻のユーティリティ用のJavaプロジェクトの中で最も使用されているサードパーティライブラリの1つです。 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. 結論
このチュートリアルでは、うるう年とは何か、うるう年を見つけるためのロジック、およびうるう年をチェックするために使用できるいくつかのJavaAPIについて説明しました。
いつものように、コードスニペットはGitHubで見つけることができます。