Za rešitev problema izračuna starosti iz datuma lahko uporabimo vgrajene razrede Jave, kot sta LocalDate in Period. Ti razredi so del vmesnika Java Time API, predstavljenega v Javi 8, ki je zasnovan za poenostavitev izračunov datuma in časa.
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();
}
}
Razčlenimo kodo korak za korakom. Najprej uvozimo potrebne razrede, LocalDate in Period. Nato ustvarimo razred z imenom AgeCalculator z glavno metodo, ki inicializira rojstni datum in trenutni datum z uporabo razreda LocalDate. Metoda `calculateAge` se nato pokliče z navedenimi rojstnimi in trenutnimi datumi kot argumenti.
Znotraj metode `calculateAge` uporabljamo metodo `Period.between()`, ki izračuna obdobje med obema datumoma. Na koncu vrnemo razliko v letih s klicem metode `getYears()` za izračunano obdobje.
Java Time API
Naš Java Time API, znan tudi kot Java Date and Time API, je zmogljiva knjižnica, predstavljena v Javi 8 za obravnavanje opravil, povezanih z datumom in uro. Zasnovan je tako, da je bolj intuitiven, robusten in enostaven za uporabo kot njegov predhodnik, razreda java.util.Date in Calendar, ki sta imela številne težave in omejitve.
Nekatere ključne funkcije API-ja Java Time vključujejo:
- Nespremenljivi in nitno varni razredi.
- Jasno ločevanje med človeku berljivo predstavitvijo datuma in časa ter predstavitvijo strojnega časa.
- Prilagodljiv in razširljiv API za podporo različnim koledarjem in sistemom merjenja časa.
- Vgrajena podpora za časovne pasove in poletni čas.
Uporaba obdobja in lokalnega datuma
Naš obdobje razred v Javi predstavlja časovno obdobje, izraženo v letih, mesecih in dnevih. Je uporaben razred za izračun razlike med dvema datumoma, kot je prikazano v našem primeru izračuna starosti.
Naš Lokalni datum class pa predstavlja datum brez informacij o času in časovnem pasu. Uporaben je za predstavitev datumov rojstva, datumov dogodkov ali katerega koli drugega datuma, kjer informacije o času niso potrebne.
V našem primeru izračuna starosti smo uporabili metodo `Period.between()` za izračun razlike med dvema primerkoma LocalDate – datumom rojstva in trenutnim datumom. Nastali objekt Period nam zagotovi razliko v letih, mesecih in dnevih med obema datumoma, kar olajša izračun starosti osebe.
Skratka, izračun starosti iz datuma je mogoče enostavno doseči z uporabo vgrajenih razredov Jave, kot sta LocalDate in Period. Ti razredi skupaj s širšim programskim vmesnikom Java Time ponujajo zmogljivo in prilagodljivo rešitev za obdelavo izračunov datuma in časa v vaših aplikacijah Java.