Preskoči na vsebino

Kalkulator starosti — Natančna starost v letih, mesecih in dneh

Brezplačni kalkulator starosti: vnesite datum rojstva in dobite natančno starost v letih, mesecih in dneh, ter skupne tedne, dneve, ure in vaš naslednji rojstni dan.

Kalkulator starosti

Natančna starost
36 let 7 mesecev 26 dni

Rodili ste se na Monday

Naslednji rojstni dan: 127 dni od zdaj (sledi 37)

Vaša starost v drugih enotah

Meseci
439
Tedni
1,912
Dnevi
13,387
Ure
321,288
Minute
19,277,280
Sekunde
1,156,636,800

Napredek v življenju

Vaša starost glede na ilustrativno referenčno obdobje 80 let.

Vizualizacija starosti3636 / 80 let080
Kalkulator nalaganja...
📚

Dokumentacija

Kaj je kalkulator starosti?

Kalkulator starosti izračuna natančen čas med dvema datumoma: datumom rojstva in ciljnim datumom, običajno današnjim dnem. Rezultat prikaže v letih, mesecih in dnevih ter tudi kot skupno število mesecev, tednov, dni, ur, minut in sekund. Starost je mogoče izračunati tudi za pretekli ali prihodnji datum, kar pokaže, koliko je bila oseba stara oziroma koliko bo stara na ta dan.

Kako izračunati starost

Starost je razlika med dvema koledarskima datumoma. To razliko je mogoče pravilno opisati na dva načina, oba pa sta uporabna za različne namene.

Koledarska starost (leta, meseci, dnevi)

To je običajen način navajanja starosti, na primer »33 let, 4 mesece in 5 dni«. Izračuna se v treh korakih:

  1. Preštejte dopolnjena leta, ki so minila od datuma rojstva.
  2. Od zadnjega rojstnega dne preštejte dopolnjene mesece, ki so minili.
  3. Nato preštejte preostale dni.

Korak 3 je proti koncu meseca zapleten, ker nimajo vsi meseci enakega števila dni. Oseba, rojena 31. januarja, katere starost se meri 1. marca, je stara 1 mesec in 1 dan. En mesec po 31. januarju je 28. februar (oziroma 29. februar v prestopnem letu), saj 31. februar ne obstaja. 1. marec je en dan pozneje. Ta metoda, včasih imenovana pravilo relativedelta po knjižnici Python, ki ga je uveljavila, datum obletnice prilagodi zadnjemu dnevu krajšega meseca, tako da število dni nikoli ni negativno.

Skupni pretečeni čas (dnevi, ure, sekunde)

Za natančno štetje preživetega časa se oba datuma pretvorita v eno samo časovno točko, nato pa se izračuna razlika v celih dnevih:

d=⌊t−b86400000⌋d = \left\lfloor \frac{t - b}{86400000} \right\rfloor

kjer je d število celih dni, t ciljni datum in b datum rojstva, pri čemer je vsak od njih izražen kot število milisekund, delitelj pa je število milisekund v enem dnevu.

Pred odštevanjem se oba datuma nastavita na polnoč UTC (koordinirani univerzalni čas). Tako spremembe poletnega časa ne dodajo ali odvzamejo ure in ne izkrivijo števila dni. Iz skupnega števila dni se število tednov izračuna kot dnevi, deljeni z 7 in zaokroženi navzdol. Število ur, minut in sekund je enako številu dni, pomnoženemu z 24, 1.440 oziroma 86.400.

Če skupno število dni delite z 365 ali 365,25, dobite približno starost v letih, vendar pri tem ni upoštevano, katera leta v tem obdobju so bila prestopna. Koledarsko štetje, opisano zgoraj, je natančno. Koledarsko starost uporabite za odgovor na vprašanje »koliko sem star?«. Skupno število dni ali tednov uporabite pri opravilih, ki zahtevajo natančen pretečeni čas, na primer pri določanju časa za odmerjanje zdravil ali odštevanju do pomembnega dogodka.

Rešen primer

Oseba, rojena 1. januar 2000, katere starost se meri na 1. januar 2020:

MeriloVrednost
Koledarska starost20 let, 0 mesecev, 0 dni
Skupno število mesecev240
Skupno število tednov1.043
Skupno število dni7.305
Skupno število ur175.320
Skupno število minut10.519.200
Skupno število sekund631.152.000
Dan v tednu rojstvaSobota

Skupno število 7.305 dni je enako 20 × 365 plus 5 prestopnih dni za prestopna leta 2000, 2004, 2008, 2012 in 2016. Vsako od teh let je imelo dodaten 29. februar, ki spada v 20-letno obdobje. Zato je število dni večje od preprostega izračuna 20 × 365, ročni izračun pa se lahko zlahka zmoti za nekaj dni.

Formula za izračun starosti v kodi

Zgoraj opisano metodo koledarske starosti je mogoče izvajati v večini programskih jezikov. Uporaba vgrajene knjižnice za datume je varnejša od ročnega zapisovanja pravil za prestopna leta in dolžine mesecev.

1from dateutil.relativedelta import relativedelta
2from datetime import date
3
4birth, target = date(2000, 1, 1), date(2020, 1, 1)
5
6age = relativedelta(target, birth)     # calendar age
7print(f"{age.years}y {age.months}m {age.days}d")
8
9total_days = (target - birth).days     # total elapsed days
10print(total_days)                      # 7305
11

Microsoft opozarja, da lahko argument "md" blizu meja mesecev vrne negativno število ali napačno število dni, zato del te formule s preostalimi dnevi ni vedno skladen z zgoraj opisanim pravilom prilagoditve.

Pogosta vprašanja

Kako ugotovim svojo natančno starost? Vnesite datum rojstva, ciljni datum pa pustite nastavljen na današnji dan. Rezultat prikaže starost v letih, mesecih in dnevih ter enako starost v skupnem številu dni, tednov, ur in sekund.

Zakaj dva kalkulatorja starosti prikažeta različna rezultata? Razlika je običajno v načinu štetja preostalih dni blizu meje meseca. Kalkulator, ki ob koncu meseca starost omeji na krajši mesec, kot je opisano zgoraj, se lahko za dan ali dva razlikuje od kalkulatorja, ki pretečeni čas preprosto deli z 30.

Ali izračun upošteva prestopna leta? Da. Skupno število dni vključuje vsak 29. februar, ki spada med oba datuma. V letu brez 29. februarja se obletnica rojstva na prestopni dan šteje kot 28. februar, zadnji dan tega meseca. Oseba, rojena 29. februar 1996, je 26 let, 11 mesecev in 22 dni stara na 20. februar 2023, njen naslednji rojstni dan pa nastopi 8 dni pozneje, na 28. februar 2023.

Ali je mogoče starost izračunati za datum v preteklosti ali prihodnosti? Da. Če ciljni datum nastavite na datum v prihodnosti, vidite, koliko bo oseba takrat stara. Če ga nastavite na datum v preteklosti, vidite, koliko je bila takrat stara. Datum rojstva ne sme biti v prihodnosti, ciljni datum pa ne sme biti pred datumom rojstva.

Ali časovni pasovi vplivajo na rezultat? Ne. Oba datuma se pred štetjem dni pretvorita v polnoč UTC, zato skupni rezultat ostane enak ne glede na uporabnikovo lokacijo ali spremembe poletnega časa.

Zakaj se število dni razlikuje od deljenja dni z 365,25? 365,25 je le povprečna dolžina leta; ne upošteva, katera posamezna leta v tem obdobju so prestopna leta s 366 dnevi. Štetje celih dni med dvema dejanskima koledarskima datumoma je natančno.

Viri

  1. Python dateutil — relativedelta, zgoraj opisano pravilo za mesece in dneve pri izračunu koledarske starosti.
  2. Platforma Java — Period.between in ChronoUnit.DAYS.
  3. Microsoft Excel — funkcija DATEDIF.
  4. MDN Web Docs — Date.
  5. Dershowitz, N., in Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.