Přeskočit na obsah

Kalkulačka věku — Přesný věk v letech, měsících a dnech

Bezplatná kalkulačka věku: zadej své datum narození a získej svůj přesný věk v letech, měsících a dnech, plus celkový počet týdnů, dní, hodin a tvoje další narozeniny.

Kalkulačka věku

Přesný věk
36 let 7 měsíců 26 dní

Narodil/a ses v Monday

Další narozeniny: Za 127 dní (dosáhneš 37)

Tvůj věk v jiných jednotkách

Měsíce
439
Týdny
1,912
Dny
13,387
Hodiny
321,288
Minuty
19,277,280
Sekundy
1,156,636,800

Postup v životě

Tvůj věk v porovnání s ilustrativním 80letým referenčním obdobím.

Vizualizace věku3636 / 80 let080
Kalkulačka načítání...
📚

Dokumentace

Co je kalkulačka věku?

Kalkulačka věku zjistí přesný čas mezi dvěma daty: datem narození a cílovým datem, obvykle dneškem. Výsledek uvádí v letech, měsících a dnech a také jako průběžný součet měsíců, týdnů, dnů, hodin, minut a sekund. Věk lze vypočítat i k minulému nebo budoucímu datu, což ukáže, kolik bylo člověku v daný den let nebo kolik mu bude.

Jak vypočítat věk

Věk je rozdíl mezi dvěma kalendářními daty. Tento rozdíl lze správně popsat dvěma způsoby a oba se hodí k jiným účelům.

Kalendářní věk (roky, měsíce, dny)

Takto lidé svůj věk běžně uvádějí, například „33 let, 4 měsíce a 5 dní“. Zjišťuje se ve třech krocích:

  1. Spočítejte celé roky, které uplynuly od data narození.
  2. Od posledních narozenin spočítejte celé uplynulé měsíce.
  3. Poté spočítejte zbývající dny.

Krok 3 je složitý na konci měsíce, protože měsíce nemají stejný počet dní. Člověk narozený 31. ledna, jehož věk se měří 1. března, je starý 1 měsíc a 1 den. Jeden měsíc po 31. lednu je 28. února (nebo 29. února v přestupném roce), protože 31. únor neexistuje. 1. březen je o jeden den později. Tato metoda, někdy označovaná jako pravidlo relativedelta podle knihovny Pythonu, která ji zpopularizovala, nastaví výroční datum na poslední den kratšího měsíce, takže počet dní nikdy není záporný.

Celkový uplynulý čas (dny, hodiny, sekundy)

Pro přesný výpočet prožitého času se obě data převedou na jediný časový okamžik a rozdíl se určí v celých dnech:

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

kde d je počet celých dnů, t cílové datum a b datum narození, přičemž všechny jsou vyjádřeny jako počet milisekund a dělitel je počet milisekund v jednom dni.

Před odečtením se obě data nastaví na půlnoc UTC (koordinovaného světového času). Tím se zabrání tomu, aby změny letního času přidaly nebo odebraly hodinu a zkreslily počet dní. Z celkového počtu dní se týdny získají dělením 7 a zaokrouhlením dolů. Počet hodin, minut a sekund se vypočítá vynásobením počtu dní hodnotami 24, 1 440 a 86 400.

Vydělení celkového počtu dní hodnotou 365 nebo 365,25 poskytne přibližný věk v letech, ale nezohlední, které roky v daném období byly přestupné. Kalendářní výpočet popsaný výše je přesný. Kalendářní věk použijte pro odpověď na otázku „kolik mi je let“. Celkový počet dní nebo týdnů je vhodný pro úlohy vyžadující přesný uplynulý čas, například pro načasování dávek léků nebo odpočítávání do významné události.

Příklad výpočtu

Člověk narozený 1. ledna 2000, jehož věk se měří k 1. ledna 2020:

MíraHodnota
Kalendářní věk20 let, 0 měsíců, 0 dní
Celkový počet měsíců240
Celkový počet týdnů1 043
Celkový počet dní7 305
Celkový počet hodin175 320
Celkový počet minut10 519 200
Celkový počet sekund631 152 000
Den v týdnu narozeníSobota

Celkový počet 7 305 dní se rovná 20 × 365 plus 5 přestupných dnů v přestupných letech 2000, 2004, 2008, 2012 a 2016. Každý z těchto roků přidal 29. únor, který spadá do období dlouhého 20 let. Proto je počet dní vyšší než prosté 20 × 365 a při ručním výpočtu lze snadno udělat chybu v řádu několika dní.

Vzorec pro výpočet věku v kódu

Výše uvedenou metodu výpočtu kalendářního věku lze implementovat ve většině programovacích jazyků. Použití vestavěné knihovny pro práci s daty je bezpečnější než ruční zapisování pravidel pro přestupné roky a délku měsíců.

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 varuje, že argument "md" může v okolí hranic měsíců vracet záporné číslo nebo nesprávný počet dní, takže část tohoto vzorce se zbývajícími dny se ne vždy shoduje s výše uvedeným pravidlem zkrácení.

Často kladené otázky

Jak zjistím svůj přesný věk? Zadejte datum narození a cílové datum ponechte na dnešku. Výsledek uvádí věk v letech, měsících a dnech spolu se stejným věkem vyjádřeným v celkovém počtu dní, týdnů, hodin a sekund.

Proč dvě kalkulačky věku poskytují různé výsledky? Rozdíl obvykle spočívá ve způsobu počítání zbývajících dní v okolí hranice měsíce. Kalkulačka, která na konci měsíce nastaví datum na poslední den kratšího měsíce, jak je popsáno výše, se může lišit o jeden nebo dva dny od kalkulačky, která uplynulý čas jednoduše dělí hodnotou 30.

Zohledňuje výpočet přestupné roky? Ano. Celkový počet dní zahrnuje každý 29. únor, který spadá mezi obě data. V roce bez 29. února se výročí narození v přestupný den počítá jako 28. února, tedy poslední den tohoto měsíce. Člověku narozenému 29. února 1996 je k 20. února 2023 26 let, 11 měsíců a 22 dní a jeho další narozeniny připadají o 8 dní později, na 28. února 2023.

Lze věk vypočítat k datu v minulosti nebo budoucnosti? Ano. Nastavení cílového data na datum v budoucnosti ukáže, kolik bude člověku v daný den let. Nastavení na datum v minulosti ukáže, kolik mu tehdy bylo. Datum narození samo nesmí ležet v budoucnosti a cílové datum nesmí předcházet datu narození.

Ovlivňují výsledek časová pásma? Ne. Před výpočtem počtu dní se obě data převedou na půlnoc UTC, takže celkový výsledek zůstává stejný bez ohledu na polohu uživatele nebo změny letního času.

Proč se počet dní liší od dělení počtu dní hodnotou 365,25? 365,25 je pouze průměrná délka roku; neudává, které konkrétní roky v daném období mají 366 dní a jsou přestupné. Počítání celých dní mezi dvěma skutečnými kalendářními daty je přesné.

Zdroje

  1. Python dateutil — relativedelta, pravidlo pro měsíce a dny při výpočtu kalendářního věku popsané výše.
  2. Platforma Java — Period.between a ChronoUnit.DAYS.
  3. Microsoft Excel — funkce DATEDIF.
  4. MDN Web Docs — Date.
  5. Dershowitz, N. a Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.