Mencari Tahun Lompat di Jawa

1. Gambaran keseluruhan

Dalam tutorial ini, kami akan menunjukkan beberapa cara untuk menentukan apakah tahun tertentu adalah tahun lompatan di Jawa.

Tahun lompat adalah tahun yang boleh dibahagi dengan 4 dan 400 tanpa baki . Oleh itu, tahun-tahun yang dapat dibahagi dengan 100 tetapi tidak dengan 400 tidak memenuhi syarat, walaupun mereka dapat dibahagi dengan 4.

2. Menggunakan API Kalendar Pra-Java-8

Sejak Java 1.1, kelas GregorianCalendar membolehkan kita memeriksa apakah tahun adalah tahun lompatan:

public boolean isLeapYear(int year);

Seperti yang kita jangkakan, kaedah ini kembali benar jika tahun tertentu adalah tahun lompatan dan salah untuk tahun bukan lompatan.

Tahun dalam SM (Sebelum Kristus) perlu dilalui sebagai nilai negatif dan dikira sebagai 1 - tahun . Sebagai contoh, tahun 3 SM dilambangkan sebagai -2, kerana 1 - 3 = -2.

3. Menggunakan API Tarikh / Masa Java 8+

Java 8 memperkenalkan java . pakej masa dengan API Tarikh dan Masa yang jauh lebih baik.

Tahun kelas di java . pakej masa mempunyai kaedah statik untuk memeriksa sama ada tahun tertentu adalah tahun lompatan:

public static boolean isLeap(long year);

Dan ia juga mempunyai kaedah contoh untuk melakukan perkara yang sama:

public boolean isLeap();

4. Menggunakan Joda-Time API

Joda-Time API adalah salah satu perpustakaan pihak ketiga yang paling banyak digunakan di antara projek Java untuk utiliti tarikh dan waktu. Sejak Java 8, perpustakaan ini berada dalam kondisi terpelihara seperti yang disebutkan di repositori sumber Joda-Time GitHub.

Tidak ada kaedah API yang telah ditentukan untuk mencari tahun lompat di Joda-Time. Walau bagaimanapun, kami dapat menggunakan kelas LocalDate dan Days mereka untuk memeriksa tahun lompat:

LocalDate localDate = new LocalDate(2020, 1, 31); int numberOfDays = Days.daysBetween(localDate, localDate.plusYears(1)).getDays(); boolean isLeapYear = (numberOfDays > 365) ? true : false;

5. Kesimpulan

Dalam tutorial ini, kita telah melihat apa itu tahun lompatan, logik untuk mencarinya, dan beberapa API Java yang dapat kita gunakan untuk memeriksanya.

Seperti biasa, coretan kod boleh didapati di GitHub.