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.