Przejdź do treści

Kalkulator Wieku — Dokładny Wiek w Latach, Miesiącach i Dniach

Darmowy kalkulator wieku: wpisz swoją datę urodzenia, aby poznać dokładny wiek w latach, miesiącach i dniach, a także całkowitą liczbę tygodni, dni, godzin i datę następnych urodzin.

Kalkulator Wieku

Dokładny wiek
36 lat 7 miesięcy 26 dni

Urodziłeś się w Monday

Następne urodziny: 127 dni stąd (obchodzisz 37 lat)

Twój wiek w innych jednostkach

Miesiące
439
Tygodnie
1,912
Dni
13,387
Godziny
321,288
Minuty
19,277,280
Sekundy
1,156,636,800

Postęp życiowy

Twój wiek w stosunku do ilustracyjnego okresu 80 lat.

Wizualizacja wieku3636 / 80 lat080
Kalkulator załadunku...
📚

Dokumentacja

Czym jest kalkulator wieku?

Kalkulator wieku wyznacza dokładny czas między dwiema datami: datą urodzenia a datą docelową, zwykle bieżącym dniem. Wynik podaje w latach, miesiącach i dniach, a także jako łączną liczbę miesięcy, tygodni, dni, godzin, minut i sekund. Wiek można również obliczyć dla daty z przeszłości lub przyszłości, aby sprawdzić, ile dana osoba miała lub będzie miała lat tego dnia.

Jak obliczać wiek

Wiek to różnica między dwiema datami kalendarzowymi. Istnieją dwa poprawne sposoby opisywania tej różnicy, a każdy z nich jest przydatny w innych celach.

Wiek kalendarzowy (lata, miesiące, dni)

Jest to codzienny sposób podawania wieku, na przykład „33 lata, 4 miesiące i 5 dni”. Oblicza się go w trzech krokach:

  1. Policz pełne lata, które upłynęły od daty urodzenia.
  2. Od ostatnich urodzin policz pełne miesiące, które upłynęły.
  3. Następnie policz pozostałe dni.

Krok 3 staje się kłopotliwy pod koniec miesiąca, ponieważ miesiące nie mają takiej samej liczby dni. Osoba urodzona 31 stycznia, której wiek jest obliczany 1 marca, ma 1 miesiąc i 1 dzień. Miesiąc po 31 stycznia przypada 28 lutego (lub 29 lutego w roku przestępnym), ponieważ nie ma 31 lutego. 1 marca przypada dzień później. Ta metoda, nazywana czasem regułą relativedelta od nazwy biblioteki języka Python, która ją spopularyzowała, ustawia datę rocznicy na ostatni dzień krótszego miesiąca, dzięki czemu liczba dni nigdy nie jest ujemna.

Łączny czas, który upłynął (dni, godziny, sekundy)

Aby precyzyjnie obliczyć przeżyty czas, obie daty przekształca się w jeden punkt na osi czasu, a następnie oblicza różnicę w pełnych dniach:

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

gdzie d oznacza liczbę pełnych dni, t datę docelową, a b datę urodzenia, przy czym każdą z tych wartości wyraża się jako liczbę milisekund, a dzielnik oznacza liczbę milisekund w jednej dobie.

Przed odjęciem obie daty ustawia się na północ czasu UTC (uniwersalnego czasu koordynowanego). Zapobiega to temu, by zmiany czasu letniego dodawały lub odejmowały godzinę i zniekształcały liczbę dni. Na podstawie łącznej liczby dni liczbę tygodni oblicza się jako dni podzielone przez 7 i zaokrąglone w dół. Liczby godzin, minut i sekund otrzymuje się, mnożąc liczbę dni odpowiednio przez 24, 1 440 i 86 400.

Podzielenie łącznej liczby dni przez 365 lub 365,25 daje przybliżony wiek w latach, ale nie uwzględnia tego, które lata w tym okresie były przestępne. Liczenie kalendarzowe, opisane powyżej, jest dokładne. Wiek kalendarzowy służy do odpowiedzi na pytanie „ile mam lat”. Łączną liczbę dni lub tygodni stosuje się w zadaniach wymagających precyzyjnego czasu, takich jak ustalanie odstępów między dawkami leków lub odliczanie do ważnego wydarzenia.

Przykład obliczeniowy

Osoba urodzona 1 stycznia 2000, której wiek jest obliczany 1 stycznia 2020:

MiaraWartość
Wiek kalendarzowy20 lat, 0 miesięcy, 0 dni
Łączna liczba miesięcy240
Łączna liczba tygodni1 043
Łączna liczba dni7 305
Łączna liczba godzin175 320
Łączna liczba minut10 519 200
Łączna liczba sekund631 152 000
Dzień tygodnia urodzeniaSobota

Łączna liczba 7 305 dni równa się 20 × 365 plus 5 dni przestępne przypadające w latach przestępnych 2000, 2004, 2008, 2012 i 2016. Każdy z tych lat dodał 29 lutego, który przypada w okresie 20 lat. Dlatego liczba dni jest większa niż proste 20 × 365, a ręczne obliczenie łatwo pomylić o kilka dni.

Wzór obliczania wieku w kodzie

Opisaną wyżej metodę obliczania wieku kalendarzowego można zaimplementować w większości języków programowania. Korzystanie z wbudowanej biblioteki dat jest bezpieczniejsze niż ręczne zapisywanie reguł dotyczących lat przestępnych i długości miesięcy.

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

Firma Microsoft ostrzega, że argument "md" może zwracać liczbę ujemną lub nieprawidłową liczbę dni w pobliżu granic miesięcy, dlatego część tego wzoru dotycząca pozostałych dni nie zawsze jest zgodna z opisaną wyżej regułą przypisywania do ostatniego dnia miesiąca.

Często zadawane pytania

Jak obliczyć dokładny wiek? Wprowadź datę urodzenia i pozostaw datę docelową ustawioną na dziś. Wynik podaje wiek w latach, miesiącach i dniach, a także ten sam wiek jako łączną liczbę dni, tygodni, godzin i sekund.

Dlaczego dwa kalkulatory wieku podają różne wyniki? Różnica zwykle wynika ze sposobu liczenia pozostałych dni w pobliżu granicy miesiąca. Kalkulator, który pod koniec miesiąca przypisuje datę do krótszego miesiąca, jak opisano powyżej, może różnić się o dzień lub dwa od kalkulatora, który po prostu dzieli czas, jaki upłynął, przez 30.

Czy obliczenia uwzględniają lata przestępne? Tak. Łączna liczba dni obejmuje każdy 29 lutego przypadający między obiema datami. W roku bez 29 lutego rocznicę urodzenia przypadającego w dniu przestępnym liczy się jako 28 lutego, czyli ostatni dzień tego miesiąca. Osoba urodzona 29 lutego 1996 ma 26 lat, 11 miesięcy i 22 dni w dniu 20 lutego 2023, a jej następne urodziny przypadają 8 dni później, 28 lutego 2023.

Czy można obliczyć wiek dla daty z przeszłości lub przyszłości? Tak. Ustawienie przyszłej daty docelowej pokazuje, ile dana osoba będzie miała lat tego dnia. Ustawienie daty z przeszłości pokazuje, ile miała wtedy lat. Sama data urodzenia nie może przypadać w przyszłości, a data docelowa nie może być wcześniejsza niż data urodzenia.

Czy strefy czasowe wpływają na wynik? Nie. Przed obliczeniem liczby dni obie daty przekształca się na północ czasu UTC, więc łączny wynik pozostaje taki sam niezależnie od lokalizacji użytkownika i zmian czasu letniego.

Dlaczego liczba dni różni się od wyniku dzielenia dni przez 365,25? 365,25 to tylko średnia długość roku; wartość ta nie uwzględnia tego, które konkretne lata w danym okresie były latami przestępnymi o długości 366 dni. Zliczenie pełnych dni między dwiema rzeczywistymi datami kalendarzowymi jest dokładne.

Źródła

  1. Python dateutil — relativedelta, opisana powyżej reguła miesięcy i dni dla wieku kalendarzowego.
  2. Platforma Java — Period.between oraz ChronoUnit.DAYS.
  3. Microsoft Excel — funkcja DATEDIF.
  4. Dokumentacja internetowa MDN — Date.
  5. Dershowitz, N. i Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.