Перейти к содержимому

Калькулятор возраста — точный возраст в годах, месяцах и днях

Бесплатный калькулятор возраста: введите дату рождения, чтобы получить точный возраст в годах, месяцах и днях, а также общее количество недель, дней, часов и дату следующего дня рождения.

Калькулятор возраста

Точный возраст
36 лет 7 месяцев 9 дней

Вы родились в Monday

Следующий день рождения: 144 дней (исполняется 37)

Ваш возраст в других единицах

Месяцы
439
Недели
1,910
Дни
13,370
Часы
320,880
Минуты
19,252,800
Секунды
1,155,168,000

Прогресс жизни

Ваш возраст по отношению к условному 80-летнему периоду.

Визуализация возраста3636 / 80 yr080
Калькулятор загрузки...
📚

Документация

Что делает этот калькулятор

Введите свою дату рождения, и калькулятор покажет вам ровно, сколько вам лет — в годах, месяцах и днях — так же, как вы бы это произносили вслух («Мне 33 года, 4 месяца и 5 дней»). Он также показывает этот же возраст в виде количества месяцев, недель, дней, часов, минут и секунд, день недели, в который вы родились, и время до вашего следующего дня рождения.

Оставьте второе поле на сегодняшней дате, чтобы узнать ваш текущий возраст, или измените его на любую прошлую или будущую дату, чтобы найти ваш возраст на эту дату.

Главное правило, которое усложняет подсчёт возраста: месяцы и годы — это не фиксированное количество дней. В феврале 28 или 29 дней; в других месяцах 30 или 31. Поэтому «1 месяц» означает «то же число, но месяц спустя» — не «30 дней». Этот калькулятор следует правилу календаря, поэтому его результаты могут отличаться на день-два от инструментов, которые просто делят на 30 или 365.

Как рассчитывается возраст

Возраст — это промежуток между двумя датами. Есть два честных способа измерить этот промежуток, и этот инструмент показывает оба.

1. Календарный возраст (годы, месяцы, дни). Считаем полные годы от дня рождения, затем полные месяцы, затем оставшиеся дни:

  1. Считаем полные годы от рождения.
  2. От последнего дня рождения считаем полные месяцы.
  3. Отсчитываем оставшиеся дни.

Сложная часть — шаг 3 на границе месяца. Человек, рождённый 31 января, если измерять его возраст 1 марта, имеет возраст 1 месяц и 1 день — потому что «месяц спустя после 31 января» приземляется на 28/29 февраля (февраля 31 не бывает), а 1 марта на день позже. Этот калькулятор выравнивает к концу более короткого месяца, соответствуя широко используемому правилу dateutil.relativedelta, так что дни рождения в конце месяца никогда не дают отрицательное количество дней.

2. Общее прошедшее время (дни, часы, секунды). Для цифр «ваш возраст в других единицах» две даты конвертируются в количество полных дней и масштабируются:

дни=целевая датадата рождения86,400,000 мс\text{дни} = \left\lfloor \frac{\text{целевая дата} - \text{дата рождения}}{86{,}400{,}000 \text{ мс}} \right\rfloor

Обе даты сначала закрепляются на полночь UTC, чтобы изменения летнего времени не добавили и не убрали час, не сбив подсчёт дней. Недели — это дни ÷ 7 (округлено вниз); часы, минуты и секунды — это подсчёт дней, умноженный на масштаб.

Почему не просто разделить дни на 365? Потому что вы будете дрейфовать. Деление 7305 дней на 365 дает 20,01 лет; деление на 365,25 дает 20,00 — но ни один из них не знает, какие годы были високосными или какие месяцы вы на самом деле прожили. Подсчёт календаря точен; деление дней — это приближение. Используйте календарный возраст для «сколько мне лет» и общие дни/недели для точной работы с прошедшим временем (расписание приёма лекарств, длительность проектов, обратный отсчёт к вехам).

Отработанный пример

Рождение 1 января 2000 г., измерение 1 января 2020 г.:

МераЗначение
Календарный возраст20 лет, 0 месяцев, 0 дней
Всего дней7305
Всего недель1043
День недели рожденияСуббота

7305 дней = 20 × 365 + 5 високосных дней (2000, 2004, 2008, 2012, 2016). Этой одной детали — пять дополнительных дней, которые большинство людей забывает — ровно то, почему калькулятор лучше, чем устный счёт.

Birth date to target date: 20 years, 7,305 days Birth 2000-01-01 Target 2020-01-01 20 years = 7,305 days

Возраст в коде

Одно и то же вычисление на каждом языке. Для календарного возраста предпочитайте встроенную библиотеку дат вместо написанной вручную арифметики — она уже знает о високосных годах и длинах месяцев.

1' Целые дни между двумя датами (A1 = рождение, B1 = целевая дата):
2=B1-A1
3
4' Календарный возраст в полных годах / месяцах / остаток дней:
5=DATEDIF(A1, B1, "y") & " years, " & DATEDIF(A1, B1, "ym") & " months, " & DATEDIF(A1, B1, "md") & " days"
6

Частые вопросы

Сколько мне ровно лет? Введите свою дату рождения и оставьте целевую дату на сегодня. Калькулятор покажет ваш возраст в годах, месяцах и днях, а также повторит его в виде общего количества дней, недель, часов и секунд.

Почему мой возраст отличается от других калькуляторов? Почти всегда это остаток месяца/дня. Инструменты расходятся во мнении о том, как считать дни после последнего целого месяца на границе месяца. Этот привязывает к более короткому месяцу (соглашение relativedelta); инструмент, который делит на 30, будет отличаться на день-два.

Работает ли с високосными годами и днями рождения 29 февраля? Да. Подсчёты дней включают каждый високосный день в диапазоне, и день рождения 29 февраля измеряется против 28 февраля / 1 марта в невисокосные годы без переполнения.

Могу ли я рассчитать возраст на прошлую или будущую дату? Да — установите поле «Возраст на дату» на любую дату. Будущая дата показывает, сколько вам будет лет; прошлая дата — сколько вам было.

Что с часовыми поясами? Даты нормализуются на UTC перед подсчётом, поэтому общее количество целых дней стабильно независимо от того, где вы находитесь или изменилось ли летнее время.

Источники

  1. Python dateutilrelativedelta (правило месяца/дня календарного возраста, которое следует этот инструмент).
  2. Java Platform — Period.between и ChronoUnit.DAYS.
  3. Microsoft Excel — DATEDIF функция.
  4. MDN Web Docs — Date.
  5. Dershowitz, N., & Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.