Pronalaženje prijestupnih godina na Javi
1. Pregled
U ovom ćemo uputstvu pokazati nekoliko načina kako odrediti je li određena godina prestupna u Javi.
Prestupna je godina koja je djeljiva s 4 i 400 bez ostatka. Dakle, godine koje su djeljive sa 100, ali ne sa 400 ne ispunjavaju uvjete, iako su djeljive sa 4.
2. Korištenje API-ja kalendara Pre-Java-8
Od Jave 1.1, Gregorijanski kalendar klasa omogućuje nam da provjerimo je li godina prijestupna:
javni boolean isLeapYear (int godina);
Kao što bismo mogli očekivati, ova metoda se vraća pravi ako je data godina prestupna i lažno za prijestupne godine.
Godine u pr. Kr. (Prije Krista) treba donijeti kao negativne vrijednosti i izračunavaju se kao 1 - godina. Na primjer, godina 3. prije Krista predstavljena je kao -2, budući da je 1 - 3 = -2.
3. Korištenje Java 8+ Datum / Vrijeme API-ja
Java 8 je predstavila Java.vrijeme paket s puno boljim API-jem za datum i vrijeme.
Razred Godina u Java.vrijeme paket ima a statički metoda za provjeru je li zadana godina prijestupna:
javni statički logički isLeap (duga godina);
A također ima metodu instance koja čini isto:
javni logički isLeap ();
4. Korištenje Joda-Time API-ja
Joda-Time API jedna je od najčešće korištenih neovisnih knjižnica među Java projektima za uslužne programe za datum i vrijeme. Od Jave 8, ova je knjižnica u stanju za održavanje kao što je spomenuto u Joda-Time GitHub izvornom spremištu.
Ne postoji unaprijed definirana API metoda za pronalaženje prestupne godine u Joda-Timeu. Međutim, možemo se poslužiti njihovim LocalDate i Dana klase za provjeru prijestupne godine:
LocalDate localDate = novi LocalDate (2020, 1, 31); int numberOfDays = Days.daysBetween (localDate, localDate.plusYears (1)). getDays (); boolean isLeapYear = (numberOfDays> 365)? točno netočno;
5. Zaključak
U ovom uputstvu vidjeli smo što je prijestupna godina, logika pronalaženja i nekoliko Java API-ja koje možemo koristiti za provjeru.
Kao i uvijek, isječke koda možete pronaći na GitHubu.