Schrikkeljaren zoeken in Java

1. Overzicht

In deze tutorial demonstreren we verschillende manieren om te bepalen of een bepaald jaar een schrikkeljaar is in Java.

Een schrikkeljaar is een jaar dat deelbaar is door 4 en 400 zonder rest. Jaren die deelbaar zijn door 100 maar niet door 400 komen dus niet in aanmerking, ook al zijn ze deelbaar door 4.

2. Met behulp van de Pre-Java-8 Calendar API

Sinds Java 1.1 is het Gregoriaanse kalender klasse stelt ons in staat om te controleren of een jaar een schrikkeljaar is:

openbare boolean isLeapYear (int jaar);

Zoals we zouden verwachten, keert deze methode terug waar als het gegeven jaar een schrikkeljaar is en false voor niet-schrikkeljaren.

Jaren in BC (vóór Christus) moeten als negatieve waarden worden doorgegeven en worden berekend als 1 - jaar. Het jaar 3 v.Chr. Wordt bijvoorbeeld weergegeven als -2, aangezien 1 - 3 = -2.

3. Met behulp van de Java 8+ Date / Time API

Java 8 introduceerde het Java.tijd pakket met een veel betere datum- en tijd-API.

De klas Jaar in de Java.tijd pakket heeft een statisch methode om te controleren of het gegeven jaar een schrikkeljaar is:

openbare statische boolean isLeap (lang jaar);

En het heeft ook een instantiemethode om hetzelfde te doen:

openbare boolean isLeap ();

4. Met behulp van de Joda-Time API

De Joda-Time API is een van de meest gebruikte bibliotheken van derden onder de Java-projecten voor hulpprogramma's voor datum en tijd. Sinds Java 8, deze bibliotheek is in onderhoudbare staat zoals vermeld in de Joda-Time GitHub source repository.

Er is geen vooraf gedefinieerde API-methode om een ​​schrikkeljaar in Joda-Time te vinden. We kunnen hun LocalDate en Dagen klassen om te controleren op schrikkeljaar:

LocalDate localDate = nieuwe LocalDate (2020, 1, 31); int numberOfDays = Days.daysBetween (localDate, localDate.plusYears (1)). getDays (); boolean isLeapYear = (numberOfDays> 365)? waar onwaar;

5. Conclusie

In deze tutorial hebben we gezien wat een schrikkeljaar is, de logica om het te vinden en verschillende Java API's die we kunnen gebruiken om het te controleren.

Zoals altijd zijn codefragmenten te vinden op GitHub.