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.


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