Ugrás a tartalomra

Életkor kalkulátor — Pontos életkor évben, hónapban és napban

Ingyenes életkor kalkulátor: adja meg születési dátumát, hogy megtudja pontos életkorát évben, hónapban és napban, valamint a hetek, napok, órák teljes számát és következő születésnapját.

Életkor kalkulátor

Pontos életkor
36 év 7 hónap 26 nap

Egy {{dayOfWeek}}-én születtél meg Monday

Következő születésnap: 127 nap múlva (betöltöd az 37-et)

Az életed más egységekben

Hónapok
439
Hetek
1,912
Napok
13,387
Órák
321,288
Percek
19,277,280
Másodpercek
1,156,636,800

Életpályám

Az életed egy szemléltető 80 éves időszakhoz képest.

Életkor vizualizáció3636 / 80 év080
Betöltési kalkulátor...
📚

Dokumentáció

Mi az életkor-kalkulátor?

Az életkor-kalkulátor megkeresi két dátum – a születési dátum és egy cél-dátum, általában a mai nap – közötti pontos időt. Az eredményt években, hónapokban és napokban, valamint hónapok, hetek, napok, órák, percek és másodpercek folyamatos összegében adja meg. Az életkor egy múltbeli vagy jövőbeli dátumra is kiszámítható; ez megmutatja, hogy az adott napon hány éves volt vagy lesz valaki.

Az életkor kiszámítása

Az életkor két naptári dátum közötti különbség. Ezt a különbséget két helyes módon lehet leírni, és mindkettő más-más célra hasznos.

Naptári életkor (évek, hónapok, napok)

Ez az életkor megadásának mindennapi módja, például: „33 éves, 4 hónapos és 5 napos.” Meghatározása három lépésből áll:

  1. Meg kell számolni a születési dátum óta eltelt teljes éveket.
  2. A legutóbbi születésnaptól meg kell számolni az eltelt teljes hónapokat.
  3. Ezután meg kell számolni a fennmaradó napokat.

A 3. lépés a hónap vége felé nehézzé válik, mivel a hónapok nem azonos számú napból állnak. Aki január 31-én született, és életkorát március 1-jén mérik, 1 hónapos és 1 napos. Január 31. után egy hónappal február 28. következik (szökőévben február 29.), mivel nincs február 31. Március 1. egy nappal később van. Ez a módszer, amelyet a népszerűvé tevő Python-könyvtár után néha relativedelta-szabálynak neveznek, a rövidebb hónap utolsó napjára igazítja az évforduló dátumát, így a napok száma soha nem lesz negatív.

Teljes eltelt idő (nap, óra, másodperc)

Az eltelt idő pontos meghatározásához mindkét dátumot egyetlen időpontra kell átszámítani, majd a különbséget teljes napokban kell megadni:

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

ahol d az egész napok száma, t a céldátum, b pedig a születési dátum, mindegyik ezredmásodpercek számaként megadva, az osztó pedig egy nap ezredmásodperceinek száma.

A kivonás előtt mindkét dátumot UTC szerinti éjfélre (koordinált világidőre) állítják. Ez megakadályozza, hogy a nyári időszámítás változásai egy órát hozzáadjanak vagy elvegyenek, és ezáltal torzítsák a napok számát. A napok teljes számából a hetek számát a napok 7-tel való osztásával, lefelé kerekítve kapjuk meg. Az órák, percek és másodpercek a napok számának 24, 1 440, illetve 86 400-dal való szorzásából adódnak.

A teljes napok számának 365-tel vagy 365,25-tel való elosztása hozzávetőleges életkort ad években, de nem veszi figyelembe, hogy az adott időszakban mely évek voltak szökőévek. A fent leírt naptári számítás pontos. A „hány éves vagyok?” kérdés megválaszolásához a naptári életkort kell használni. A teljes napok vagy hetek számát olyan feladatokhoz érdemes használni, amelyek pontosan eltelt időt igényelnek, például gyógyszeradagok időzítéséhez vagy egy mérföldkőig hátralévő idő visszaszámlálásához.

Megoldott példa

Egy 2000. január 1.-jén született személy életkora 2020. január 1.-jén:

MértékÉrték
Naptári életkor20 év, 0 hónap, 0 nap
Teljes hónapok száma240
Teljes hetek száma1 043
Teljes napok száma7 305
Teljes órák száma175 320
Teljes percek száma10 519 200
Teljes másodpercek száma631 152 000
A születés napjaSzombat

A 7 305 nap teljes összege egyenlő 20 × 365 nappal, valamint 5 szökőnappal, amelyek a következő szökőévekre esnek: 2000, 2004, 2008, 2012 és 2016. Ezen évek mindegyike egy 29 napos februárral növelte a napok számát, amely az 20 éves időszakba esik. Ezért nagyobb a napok száma, mint az egyszerű 20 × 365 szorzat, és ezért könnyű kézi számításkor néhány nappal tévedni.

Életkor-képlet kódban

A fent ismertetett, naptári életkoron alapuló módszer a legtöbb programozási nyelven megvalósítható. A beépített dátumkezelő könyvtár használata biztonságosabb, mint a szökőévekre és a hónapok hosszára vonatkozó szabályok kézi megírása.

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

A Microsoft figyelmeztetése szerint az "md" argumentum negatív számot vagy hibás napértéket adhat a hónapok határánál, ezért a képlet fennmaradó napokra vonatkozó része nem mindig egyezik a fent leírt igazítási szabállyal.

Gyakran ismételt kérdések

Hogyan tudom meg a pontos életkoromat? Adja meg a születési dátumot, a cél dátumát pedig hagyja a mai napra állítva. Az eredmény megadja az életkort években, hónapokban és napokban, valamint ugyanezt az életkort teljes napokban, hetekben, órákban és másodpercekben.

Miért ad két életkor-kalkulátor eltérő eredményt? A különbség általában abból adódik, hogy miként számítják a hónap határánál fennmaradó napokat. Az a kalkulátor, amely a hónap végén a rövidebb hónaphoz igazít, a fent leírtak szerint, egy-két nappal eltérhet attól, amely egyszerűen 30-cal osztja el az eltelt időt.

Figyelembe veszi a számítás a szökőéveket? Igen. A napok teljes száma minden, a két dátum közé eső február 29-ét tartalmazza. Olyan évben, amelyben nincs február 29, a szökőnapon született személy születésnapját február 28-ának, az adott hónap utolsó napjának számítják. Az 1996. február 29.-án született személy 26 éves, 11 hónapos és 22 napos 2023. február 20. napján, a következő születésnapja pedig 8 nappal később, 2023. február 28. napján következik be.

Kiszámítható az életkor egy múltbeli vagy jövőbeli dátumra? Igen. Ha a cél-dátumot jövőbeli dátumra állítják, megmutatja, hány éves lesz valaki azon a napon. Ha múltbeli dátumra állítják, megmutatja, hány éves volt. A születési dátum maga nem lehet jövőbeli, és a cél-dátum nem eshet a születési dátum elé.

Befolyásolják az időzónák az eredményt? Nem. Mindkét dátumot UTC szerinti éjfélre alakítják át a napok számának meghatározása előtt, ezért az összeg a felhasználó tartózkodási helyétől és a nyári időszámítás változásaitól függetlenül ugyanaz marad.

Miért tér el a napok száma a napok 365,25-tel való osztásából kapott értéktől? A 365,25 csupán egy év átlagos hossza; nem követi nyomon, hogy az adott időszakban pontosan mely évek 366 napos szökőévek. Két valódi naptári dátum közötti teljes napok számának meghatározása pontos.

Források

  1. Python dateutil — relativedelta, a fent leírt, naptári életkor kiszámítására vonatkozó hónap- és napszabály.
  2. Java Platform — Period.between és ChronoUnit.DAYS.
  3. Microsoft Excel — DATEDIF függvény.
  4. MDN Web Docs — Date.
  5. Dershowitz, N. és Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.