Izračunaj dob u Javi
1. Pregled
U ovom brzom vodiču vidjet ćemo kako izračunati dob pomoću biblioteka Java 8, Java 7 i Joda-Time.
U svim ćemo slučajevima uzeti datum rođenja i trenutni datum kao ulazne podatke i vratiti izračunatu dob u godinama.
2. Korištenje Jave 8
Java 8 je predstavila novi Date-Time API za rad s datumima i vremenima, uglavnom zasnovan na biblioteci Joda-Time.
U Javi 8 možemo koristiti java.time.LocalDate za naš datum rođenja i trenutni datum, a zatim upotrijebite Razdoblje kako bi izračunali njihovu razliku u godinama:
javni int izračunAge (LocalDate datum rođenja, LocalDate trenutni datum) {// provjera valjanosti unosa ... povratak Period.između (datum rođenja, trenutni datum) .getYears (); }
LocalDate je ovdje korisno jer predstavlja samo datum, u usporedbi s Javinim Datum klase, koja predstavlja i datum i vrijeme. LocalDate.now () može nam dati trenutni datum.
I Razdoblje korisno je kada moramo razmišljati o vremenskim razdobljima u godinama, mjesecima i danima.
Ako bismo željeli dobiti točniju dob, recimo u sekundama, tada bismo je željeli pogledati LocalDateTime i Trajanje, odnosno (i možda vratiti a dugo umjesto toga).
3. Korištenje Joda-Timea
Ako Java 8 nije opcija, još uvijek možemo dobiti isti takav rezultat od Joda-Timea, de-facto standard za operacije datuma i vremena u svijetu prije Java 8.
Moramo dodati ovisnost o Joda-vremenu u naš pom:
joda-vrijeme joda-vrijeme 2.10
A onda možemo napisati sličnu metodu za izračunavanje dobi, ovaj put koristeći LocalDate i Godine iz Joda-Timea:
public int izračunajAgeWithJodaTime (org.joda.time.LocalDate datum rođenja, org.joda.time.LocalDate currentDate) {// provjera valjanosti unosa ... Godine dob = Godine.godineMeđu (datum rođenja, trenutniDatum); povratak age.getYears (); }
4. Korištenje Jave 7
Bez namjenskog API-ja u Javi 7, preostaje nam da pokrenemo vlastiti, tako da postoji dosta pristupa.
Kao jedan od primjera možemo koristiti java.util.Datum:
javni int CalcuAgeWithJava7 (Datum rođenja, Datum trenutnog datuma) {// provjera valjanosti unosa ... DateFormat formatter = novi SimpleDateFormat ("yyyyMMdd"); int d1 = Integer.parseInt (formatter.format (datum rođenja)); int d2 = Integer.parseInt (formatter.format (currentDate)); int dob = (d2 - d1) / 10000; povratna dob; }
Ovdje pretvaramo dano Datum rođenja i trenutni datum objekte u cijele brojeve i pronađu razliku između njih, i sve dok još uvijek nismo na Javi 7 u 8000 godina, ovaj bi pristup trebao raditi do tada.
5. Zaključak
U ovom smo članku pokazali kako lako izračunati dob pomoću biblioteka Java 8, Java 7 i Joda-Time.
Da biste saznali više o podršci za vrijeme podataka Java 8, pogledajte uvod u datum i vrijeme Java 8.
I kao i uvijek, cjelovit kod za ove isječke možete pronaći na GitHubu.