Ugró évek keresése a Java-ban
1. Áttekintés
Ebben az oktatóanyagban számos módszert mutatunk be annak megállapítására, hogy egy adott év szökőév-e a Java-ban.
A szökőév olyan év, amely 4-gyel és 400-zal osztható maradék nélkül. Így azok az évek, amelyek oszthatók 100-mal, de nem 400-mal, nem minősülnek annak ellenére, hogy oszthatók 4-tel.
2. A Pre-Java-8 Calendar API használata
A Java 1.1 óta a Gergely naptár osztály lehetővé teszi számunkra, hogy ellenőrizzük, egy év szökőév-e:
nyilvános logikai isLeapYear (int év);
Ahogy számíthatunk rá, ez a módszer visszatér igaz ha az adott év szökőév és hamis nem szökő évekre.
Kr. E. (Krisztus előtti) éveket negatív értékként kell teljesíteni és 1 - év. Például a Kr. E. 3. év -2, mivel 1 - 3 = -2.
3. A Java 8+ dátum / idő API használatával
A Java 8 bemutatta a Jáva.idő csomag sokkal jobb Dátum és Idő API-val.
Osztály Év ban,-ben Jáva.idő a csomagnak van egy statikus módszer annak ellenőrzésére, hogy az adott év szökőév-e:
public static boolean isLeap (hosszú év);
És van egy példányos módszere is, hogy ugyanezt tegye:
nyilvános logikai isLeap ();
4. A Joda-Time API használata
A Joda-Time API az egyik leggyakrabban használt külső könyvtár a Java projektek között a dátum és idő segédprogramokhoz. A Java 8 óta ez a könyvtár karbantartható állapotban van amint azt a Joda-Time GitHub forrástárban említettük.
Nincs előre definiált API-módszer a szökőév megtalálásához a Joda-Time-ban. Azonban felhasználhatjuk őket LocalDate és Napok osztályok az ugróév ellenőrzésére:
LocalDate localDate = new LocalDate (2020, 1, 31); int numberOfDays = Days.daysBetween (localDate, localDate.plusYears (1)). getDays (); logikai isLeapYear = (numberOfDays> 365)? igaz hamis;
5. Következtetés
Ebben az oktatóanyagban láthattuk, hogy mi az a szökőév, annak megtalálásának logikáját, és több Java API-t, amelyek segítségével ellenőrizhetjük.
Mint mindig, a kódrészletek is megtalálhatók a GitHubon.