Számítsa ki az életkort Java-ban

1. Áttekintés

Ebben a gyors bemutatóban megtudhatjuk, hogyan lehet kiszámolni az életkort a Java 8, Java 7 és Joda-Time könyvtárak használatával.

Minden esetben a születési dátumot és az aktuális dátumot vesszük alapul, és a számított életkorot években adjuk vissza.

2. A Java 8 használata

A Java 8 új Date-Time API-t vezetett be a dátumokkal és időkkel való munkavégzéshez, nagyrészt a Joda-Time könyvtárból kiindulva.

A Java 8-ban használhatjuk java.time.LocalDate születési dátumunkra és aktuális dátumunkra, majd használjuk Időszak az évekbeli különbség kiszámításához:

public int calcAge (LocalDate birthDate, LocalDate currentDate) {// validálja a bemeneteket ... return Period.between (birthDate, currentDate) .getYears (); }

LocalDate hasznos itt, mert csak egy dátumot jelent, a Java-hoz képest Dátum osztály, amely dátumot és időt is jelent. LocalDate.now () megadhatja az aktuális dátumot.

És Időszak hasznos, ha évekre, hónapokra és napokra vonatkozó időszakokra kell gondolnunk.

Ha pontosabb életkort akarunk kapni, mondjuk másodpercek alatt, akkor meg szeretnénk nézni LocalDateTime és Időtartam, illetve (esetleg adhat vissza egy hosszú helyette).

3. A Joda-Time használata

Ha a Java 8 nem választható, még mindig ugyanolyan eredményt kaphatunk a Joda-Time-tól, de facto szabvány a dátum-idő műveletekre a Java 8 előtti világban.

Hozzá kell adnunk a Joda-Time függőséget a pomunkhoz:

 joda-idő joda-idő 2.10 

És akkor hasonló módszert írhatunk az életkor kiszámítására, ezúttal felhasználva LocalDate és Évek a Joda-Time-ból:

public int calcAgeWithJodaTime (org.joda.time.LocalDate birthDate, org.joda.time.LocalDate currentDate) {// validálja a bemeneteket ... Years age = Years.yearsBetween (birthDate, currentDate); visszatérő életkor.getYears (); }

4. A Java 7 használata

Dedikált API nélkül a Java 7-ben, hagyjuk magunkra váltani, ezért jó néhány megközelítés létezik.

Példaként használhatjuk java.util.Dátum:

public int calcAgeWithJava7 (Születési dátum, Dátum aktuálisDátum) {// validálja a bemeneteket ... DateFormat formatter = new SimpleDateFormat ("ééééHHdd"); int d1 = Integer.parseInt (formatter.format (birthDate)); int d2 = Integer.parseInt (formatter.format (currentDate)); int kor = (d2 - d1) / 10000; visszatérő életkor; }

Itt konvertáljuk az adott születési dátum és mostani dátum az objektumokat egész számokra, és megtalálja a köztük lévő különbséget, és mindaddig, amíg 8000 év alatt még nem vagyunk a Java 7-en, ennek a megközelítésnek addig működnie kell.

5. Következtetés

Ebben a cikkben megmutattuk, hogyan lehet könnyen kiszámolni az életkort a Java 8, Java 7 és Joda-Time könyvtárak segítségével.

Ha többet szeretne megtudni a Java 8 adat-idő támogatásáról, tekintse meg a Java 8 dátum-idő bevezetőt.

És mint mindig, ezeknek a részleteknek a teljes kódja megtalálható a GitHubon.


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