Hľadanie priestupných rokov v Jave

1. Prehľad

V tomto tutoriáli si ukážeme niekoľko spôsobov, ako zistiť, či je daný rok v Jave priestupný.

Prestupný rok je rok, ktorý je deliteľný 4 a 400 bez zvyšku. Teda roky, ktoré sú deliteľné 100, ale nie 400, sa nekvalifikujú, aj keď sú deliteľné 4.

2. Pomocou rozhrania Calendar Pre-Java-8 Calendar

Od verzie Java 1.1 sa Gregoriánsky kalendár trieda nám umožňuje skontrolovať, či je rok priestupným rokom:

public boolean isLeapYear (int rok);

Ako by sme mohli čakať, táto metóda sa vracia pravda ak je daný rok priestupným rokom a nepravdivé na priestupné roky.

Roky pred naším letopočtom (pred Kristom) je potrebné považovať za záporné hodnoty a počítajú sa ako 1 - rok. Napríklad rok 3 pred Kr. Je reprezentovaný ako -2, keďže 1 - 3 = -2.

3. Používanie rozhrania API pre dátum a čas Java 8+

Java 8 predstavila java.čas balík s oveľa lepším rozhraním API pre dátum a čas.

Trieda Rok v java.čas balík má statický metóda na kontrolu, či je daný rok priestupným rokom:

public static boolean isLeap (long year);

A má tiež inštančnú metódu, ktorá robí to isté:

public boolean isLeap ();

4. Pomocou rozhrania Joda-Time API

Joda-Time API je jednou z najpoužívanejších knižníc tretích strán medzi projektmi Java pre obslužné programy dátumu a času. Od verzie Java 8 táto knižnica je v udržovateľnom stave ako je uvedené v zdrojovom úložisku Joda-Time GitHub.

Neexistuje žiadna preddefinovaná metóda API na nájdenie priestupného roku v Joda-Time. Môžeme však použiť ich LocalDate a Dni triedy na kontrolu priestupného roku:

LocalDate localDate = nový LocalDate (2020, 1, 31); int numberOfDays = Days.daysB Between (localDate, localDate.plusYears (1)). getDays (); boolean isLeapYear = (numberOfDays> 365)? pravda lož;

5. Záver

V tomto tutoriáli sme videli, čo je priestupný rok, logika jeho hľadania a niekoľko rozhraní Java API, ktoré môžeme použiť na jeho kontrolu.

Útržky kódu ako vždy nájdete na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found