Liigu sisu juurde

Vanuskalkulaator — Täpne vanus aastates, kuudes ja päevades

Tasuta vanuskalkulaator: sisestage oma sünniaeg, et saada oma täpne vanus aastates, kuudes ja päevades, pluss kogu nädalate arv, päevade arv, tunnid ja teie järgmine sünnipäev.

Vanuskalkulaator

Täpne vanus
36 aastat 7 kuud 26 päevad

Te sündisite Monday

Järgmine sünnipäev: 127 päeva pärast (turning 37)

Teie vanus teistes ühikutes

Kuud
439
Nädalad
1,912
Päevad
13,387
Tunnid
321,288
Minutid
19,277,280
Sekundid
1,156,636,800

Elu edenemine

Teie vanus illustraatilise 80-aastase viitemahu vastu.

Vanuse visualiseerimine3636 / 80 aastat080
Laadimiskalkulaator...
📚

Dokumentatsioon

Mis on vanusekalkulaator?

Vanusekalkulaator leiab kahe kuupäeva, sünnikuupäeva ja sihtkuupäeva, tavaliselt tänase kuupäeva, vahelise täpse ajavahemiku. Tulemus esitatakse aastate, kuude ja päevadena ning ka jookseva kogusummana kuudes, nädalates, päevades, tundides, minutites ja sekundites. Vanust saab arvutada ka mineviku- või tulevikukuupäeva seisuga, et näha, kui vana inimene sel päeval oli või saab olema.

Kuidas vanust arvutada

Vanus on kahe kalendrikuupäeva vahe. Selle vahe kirjeldamiseks on kaks õiget viisi ning mõlemad on eri otstarbel kasulikud.

Kalendrijärgne vanus (aastad, kuud, päevad)

See on igapäevane viis vanuse väljendamiseks, näiteks „33 aastat, 4 kuud ja 5 päeva vana”. See leitakse kolme sammuga:

  1. Loendage sünnikuupäevast möödunud täisaastad.
  2. Loendage viimasest sünnipäevast möödunud täiskuud.
  3. Seejärel loendage allesjäänud päevad.

Samm 3 muutub kuu lõpu lähedal keerukaks, sest kõigis kuudes ei ole sama palju päevi. Inimene, kes on sündinud 31. jaanuaril ja kelle vanust mõõdetakse 1. märtsil, on 1 kuu ja 1 päeva vana. Üks kuu pärast kuupäeva 31. jaanuar on 28. veebruar (liigaastal 29. veebruar), sest 31. veebruari ei ole. 1. märts on sellest üks päev hiljem. Seda meetodit, mida nimetatakse mõnikord ka relativedelta-reegliks seda populariseerinud Pythoni teegi järgi, kasutatakse aastapäeva kuupäeva kohandamiseks lühema kuu viimasele päevale, nii et päevade arv ei muutuks kunagi negatiivseks.

Kogu möödunud aeg (päevad, tunnid, sekundid)

Täpse elatud aja arvutamiseks teisendatakse mõlemad kuupäevad üheks ajahetkeks ja vahe leitakse täispäevades:

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

kus d on täispäevade arv, t sihtkuupäev ja b sünnikuupäev, kõik millisekundites väljendatud arvuna, ning jagaja on ühes päevas olevate millisekundite arv.

Enne lahutamist seatakse mõlemad kuupäevad UTC (koordineeritud maailmaaja) kesköösse. See takistab suveaja muutustel tunni lisamist või eemaldamist ja päevade arvu moonutamist. Päevade koguarvust saadakse nädalad, jagades päevad 7-ga ja ümardades allapoole. Tunnid, minutid ja sekundid saadakse päevade arvu korrutamisel vastavalt 24, 1 440 ja 86 400-ga.

Päevade koguarvu jagamine 365 või 365,25-ga annab ligikaudse vanuse aastates, kuid ei arvesta, millised selle ajavahemiku aastad olid liigaastad. Eespool kirjeldatud kalendripõhine arvestus on täpne. Küsimusele „kui vana ma olen?” vastamiseks kasutage kalendrijärgset vanust. Täpset möödunud aega nõudvate ülesannete, näiteks ravimiannuste ajastamise või tähtajani jäänud aja loendamise korral kasutage päevi või nädalaid.

Näidisarvutus

Inimene, kes on sündinud kuupäeval 1. jaanuar 2000 ja kelle vanust mõõdetakse kuupäeva 1. jaanuar 2020 seisuga:

MõõtVäärtus
Kalendrijärgne vanus20 aastat, 0 kuud, 0 päeva
Kuude koguarv240
Nädalate koguarv1 043
Päevade koguarv7 305
Tundide koguarv175 320
Minutite koguarv10 519 200
Sekundite koguarv631 152 000
Sünnipäeva nädalapäevLaupäev

Päevade koguarv 7 305 võrdub korrutisega 20 × 365, millele lisandub 5 liigaastapäeva järgmistel liigaastatel: 2000, 2004, 2008, 2012 ja 2016. Igaüks neist aastatest lisas 29. veebruari, mis jääb selle 20 aasta pikkuse ajavahemiku sisse. Seetõttu on päevade arv suurem kui lihtne korrutis 20 × 365 ning käsitsi arvutades on lihtne mõne päevaga eksida.

Vanuse arvutamise valem koodis

Eespool kirjeldatud kalendrijärgse vanuse meetodit saab rakendada enamikus programmeerimiskeeltes. Sisseehitatud kuupäevateegi kasutamine on turvalisem kui liigaasta- ja kuupikkuse reeglite käsitsi programmeerimine.

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 hoiatab, et argument "md" võib kuu piiril tagastada negatiivse arvu või vale päevade arvu, mistõttu selle valemi allesjäänud päevade osa ei ühti alati eespool kirjeldatud kohandamisreegliga.

Korduma kippuvad küsimused

Kuidas leida oma täpne vanus? Sisestage sünnikuupäev ja jätke sihtkuupäevaks tänane kuupäev. Tulemus näitab vanust aastates, kuudes ja päevades ning sama vanust ka päevade, nädalate, tundide ja sekundite koguarvuna.

Miks annavad kaks vanusekalkulaatorit erineva tulemuse? Erinevus tuleneb tavaliselt sellest, kuidas loendatakse kuu piiri lähedal allesjäänud päevi. Kalkulaator, mis kohandab kuu lõpus kuupäeva lühema kuu järgi, nagu eespool kirjeldatud, võib erineda ühe või kahe päeva võrra kalkulaatorist, mis lihtsalt jagab möödunud aja 30-ga.

Kas arvutuses võetakse liigaastaid arvesse? Jah. Päevade koguarv sisaldab iga kahe kuupäeva vahele jäävat 29. veebruari. Aastal, milles ei ole 29. veebruari, loetakse liigaastal sündinu sünnipäevaks 28. veebruar, selle kuu viimane päev. 29. veebruar 1996 sündinud inimene on 26 aasta, 11 kuud ja 22 päeva vana kuupäeval 20. veebruar 2023 ning tema järgmine sünnipäev on 8 päeva hiljem, kuupäeval 28. veebruar 2023.

Kas vanust saab arvutada mineviku- või tulevikukuupäeva seisuga? Jah. Kui sihtkuupäevaks määrata tulevikukuupäev, näitab tulemus, kui vana inimene sel päeval saab olema. Minevikukuupäeva korral näitab see, kui vana ta sel ajal oli. Sünnikuupäev ei saa olla tulevikus ning sihtkuupäev ei saa olla sünnikuupäevast varasem.

Kas ajavööndid mõjutavad tulemust? Ei. Mõlemad kuupäevad teisendatakse enne päevade arvu leidmist UTC keskööks, mistõttu kogusumma jääb kasutaja asukohast või suveaja muutustest sõltumata samaks.

Miks erineb päevade arv päevade jagamisel 365,25 saadavast tulemusest? 365,25 on ainult aasta keskmine pikkus; see ei näita, millised konkreetsed aastad selles ajavahemikus olid 366 päeva pikkused liigaastad. Kahe tegeliku kalendrikuupäeva vaheliste täispäevade loendamine on täpne.

Allikad

  1. Python dateutil — relativedelta, eespool kirjeldatud kalendrijärgse vanuse kuu- ja päevareegel.
  2. Java platvorm — Period.between ja ChronoUnit.DAYS.
  3. Microsoft Excel — funktsioon DATEDIF.
  4. MDN Web Docs — Date.
  5. Dershowitz, N. ja Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.