Menemukan Tahun Kabisat di Jawa

1. Ikhtisar

Dalam tutorial ini, kami akan mendemonstrasikan beberapa cara untuk menentukan apakah tahun tertentu adalah tahun kabisat di Java.

Tahun kabisat adalah tahun yang habis dibagi 4 dan 400 tanpa sisa . Jadi, tahun-tahun yang habis dibagi 100 tetapi tidak habis dibagi 400 tidak memenuhi syarat, meskipun dapat habis dibagi 4.

2. Menggunakan API Kalender Pra-Java-8

Sejak Java 1.1, kelas GregorianCalendar memungkinkan kita untuk memeriksa apakah satu tahun adalah tahun kabisat:

public boolean isLeapYear(int year);

Seperti yang mungkin kita perkirakan, metode ini mengembalikan nilai true jika tahun tertentu adalah tahun kabisat dan salah untuk tahun bukan kabisat.

Tahun di BC (Before Christ) harus dilewati sebagai nilai negatif dan dihitung sebagai 1 - tahun . Misalnya, tahun 3 SM direpresentasikan sebagai -2, karena 1 - 3 = -2.

3. Menggunakan API Tanggal / Waktu Java 8+

Java 8 memperkenalkan java . paket waktu dengan API Tanggal dan Waktu yang jauh lebih baik.

Kelas Year di java . paket waktu memiliki metode statis untuk memeriksa apakah tahun yang diberikan adalah tahun kabisat:

public static boolean isLeap(long year);

Dan itu juga memiliki metode contoh untuk melakukan hal yang sama:

public boolean isLeap();

4. Menggunakan Joda-Time API

Joda-Time API adalah salah satu pustaka pihak ketiga yang paling banyak digunakan di antara proyek Java untuk utilitas tanggal dan waktu. Sejak Java 8, library ini berada dalam status dapat dipertahankan seperti yang disebutkan dalam repositori sumber GitHub Joda-Time.

Tidak ada metode API yang ditentukan sebelumnya untuk menemukan tahun kabisat di Joda-Time. Namun, kita dapat menggunakan kelas LocalDate dan Days mereka untuk memeriksa tahun kabisat:

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 kabisat, logika untuk menemukannya, dan beberapa API Java yang dapat kita gunakan untuk memeriksanya.

Seperti biasa, potongan kode dapat ditemukan di GitHub.