
Da bismo riješili problem izračunavanja starosti iz datuma, možemo koristiti Java-ine ugrađene klase kao što su LocalDate i Period. Ove klase su dio Java Time API-ja predstavljenog u Javi 8, koji je dizajniran da pojednostavi izračunavanje datuma i vremena.
import java.time.LocalDate;
import java.time.Period;
public class AgeCalculator {
public static void main(String[] args) {
LocalDate birthDate = LocalDate.of(1990, 1, 1);
LocalDate currentDate = LocalDate.now();
int age = calculateAge(birthDate, currentDate);
System.out.println("Age: " + age);
}
public static int calculateAge(LocalDate birthDate, LocalDate currentDate) {
Period period = Period.between(birthDate, currentDate);
return period.getYears();
}
}
Razložimo kod korak po korak. Prvo uvozimo potrebne klase, LocalDate i Period. Zatim kreiramo klasu pod nazivom AgeCalculator sa glavnom metodom koja inicijalizuje datum rođenja i trenutni datum koristeći klasu LocalDate. Metoda `calculateAge` se zatim poziva sa navedenim datumima rođenja i trenutnim datumima kao argumentima.
Unutar metode `calculateAge` koristimo metodu `Period.between()`, koja izračunava period između dva datuma. Konačno, vraćamo razliku u godinama pozivanjem metode `getYears()` za izračunato razdoblje.
Java Time API
The Java Time API, također poznat kao Java API za datum i vrijeme, je moćna biblioteka predstavljena u Javi 8 za rukovanje zadacima vezanim za datum i vrijeme. Dizajniran je da bude intuitivniji, robusniji i lakši za upotrebu od svog prethodnika, klasa java.util.Date i Calendar, koje su imale brojne probleme i ograničenja.
Neke od ključnih karakteristika Java Time API-ja uključuju:
- Nepromjenjive i nitno sigurne klase.
- Jasno razdvajanje između čitljivog prikaza datuma i vremena i predstavljanja mašinskog vremena.
- Fleksibilan i proširiv API za podršku različitim kalendarima i sistemima za mjerenje vremena.
- Ugrađena podrška za vremenske zone i ljetno računanje vremena.
Korištenje perioda i lokalnog datuma
The period klasa u Javi predstavlja vremenski period izražen u godinama, mjesecima i danima. To je korisna klasa za izračunavanje razlike između dva datuma, kao što je prikazano u našem primjeru izračuna starosti.
The LocalDate klasa, s druge strane, predstavlja datum bez informacija o vremenu i vremenskoj zoni. Korisno je za predstavljanje datuma rođenja, datuma događaja ili bilo kojeg drugog datuma za koji informacije o vremenu nisu potrebne.
U našem primjeru izračunavanja starosti, koristili smo metodu `Period.between()` da izračunamo razliku između dvije instance LocalDate – datum rođenja i trenutni datum. Rezultirajući objekat Period nam daje razliku u godinama, mjesecima i danima između dva datuma, što olakšava izračunavanje starosti osobe.
U zaključku, izračunavanje starosti iz datuma može se lako postići korišćenjem Java ugrađenih klasa kao što su LocalDate i Period. Ove klase, zajedno sa širim Java Time API-jem, nude moćno i fleksibilno rješenje za rukovanje proračunima datuma i vremena u vašim Java aplikacijama.