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

Фразы вроде «34 года» обычно достаточно. Но для официальных документов, страховых форм, медицинских записей или проверки соответствия требованиям иногда нужен полный разбор: 34 года, 7 месяцев и 12 дней. Для этого требуется чуть больше, чем просто вычесть годы.

Калькулятор возраста делает это автоматически. В этой статье объясняется расчёт пошагово — полезно, если нужно проверить результат, посчитать вручную или встроить логику в таблицу или приложение.

Базовый метод

Чтобы найти возраст от даты рождения до целевой даты в годах, месяцах и днях:

1. Посчитайте полные годы — найдите последний день рождения, который был в целевую дату или раньше 2. Посчитайте полные месяцы — от последнего дня рождения до ближайшей «месячной годовщины» (тот же день месяца), которая была в целевую дату или раньше 3. Посчитайте оставшиеся дни — дни между последней месячной годовщиной и целевой датой

Пример делает это понятнее.

Дата рождения: 15 марта 1990 Целевая дата: 4 ноября 2026

Шаг 1 — Полные годы: Последний день рождения был 15 марта 2026. Это 36 полных лет.

Шаг 2 — Полные месяцы от 15 марта 2026:

  • 15 апреля = 1 месяц
  • 15 мая = 2 месяца
  • 15 июня = 3 месяца
  • 15 июля = 4 месяца
  • 15 августа = 5 месяцев
  • 15 сентября = 6 месяцев
  • 15 октября = 7 месяцев
  • 4 ноября раньше 15 ноября, значит останавливаемся на 7 месяцах

Шаг 3 — Оставшиеся дни от 15 октября до 4 ноября: В октябре 31 день. От 15 октября до 31 октября = 16 дней. Плюс 1–4 ноября = 4 дня. Итого: 20 дней.

Результат: 36 лет, 7 месяцев, 20 дней

Почему простое вычитание не работает

Кажется, что можно просто вычесть даты «год к году, месяц к месяцу, день к дню». Проблема в том, что месяцы имеют разную длину.

Если вы родились 31 января и хотите узнать возраст на 1 марта:

  • 31 января → 28 февраля (или 29) = 1 месяц (хотя это меньше дней, чем в большинстве месяцев)
  • 28 февраля → 1 марта = 1 день

То есть вы стали старше на 1 месяц и 1 день — а не на 29 или 30 дней, как могло бы получиться при наивном вычитании дней.

Это и есть ключевая сложность. Месяцы — единица переменной длины. Когда вы «прибавляете 1 месяц» к 31 января, получается 28 февраля (или 29 в високосный год) — последний день месяца, потому что 31-го в феврале нет. Это называют «прижатием к концу месяца» (month-end clamping).

«Прижатие» к концу месяца: крайний случай, на котором многие ошибаются

Если день рождения 29-го, 30-го или 31-го числа, не во всех месяцах есть такое число:

  • Рождение 30 января: «месячная годовщина» в феврале — 28 февраля (или 29)
  • Рождение 31 января: аналогично
  • Рождение 31 марта: «месячная годовщина» в апреле — 30 апреля

Из-за этого «остаток дней» после подсчёта месяцев может казаться чуть больше у людей, родившихся в конце месяца. Это не ошибка — так корректно работают месячные годовщины в реальном календаре.

Пример: Родились 31 января. Целевая дата: 5 марта.

  • 31 января → 28 февраля = 1 месяц (последний день февраля, потому что 31-го нет)
  • 28 февраля → 5 марта = 5 дней
  • Результат: 1 месяц, 5 дней

Если вместо этого считать «в феврале 28 дней, от 31 января до 5 марта 33 дня, 33 ÷ 30 = 1 месяц и 3 дня», получится неверно.

Дни рождения 29 февраля (високосный год)

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

  • день рождения отмечают 28 февраля (накануне 1 марта)
  • в некоторых странах и правовых системах используют 1 марта

Для целей расчёта возраста «годовщина» 29 февраля в невисокосные годы принимается как 28 февраля. То есть человек, родившийся 29 февраля 2000 года, становится 30-летним 28 февраля 2030 года, а не 1 марта.

Следующие реальные даты 29 февраля после 2000 года: 2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032. Обратите внимание: 1900 год не был високосным, а 2000 был (потому что делится на 400), поэтому в современном периоде 29 февраля действительно повторяется каждые 4 года.

Как посчитать возраст вручную в табличном виде

Для наглядности — пошаговый табличный подход для даты рождения 22 июля 1985 и целевой даты 10 апреля 2026:

ШагРасчётРезультат
Последний день рождения22 июля 2025 (22 июля 2026 позже 10 апреля)40 полных лет
Месяцы от 22 июля 202522 авг, 22 сен, 22 окт, 22 ноя, 22 дек, 22 янв, 22 фев, 22 мар = 8 месяцев8 полных месяцев
Следующая годовщина22 апреля 2026 (после 10 апреля)Останавливаемся на 22 марта 2026
Дни от 22 марта до 10 апреляМарт: 22→31 = 9 дней; Апрель: 1→10 = 10 дней19 дней
Возраст40 лет, 8 месяцев, 19 дней

Возраст в днях, неделях и часах

Иногда разбиение на годы/месяцы/дни — не то, что нужно. Точное количество дней даёт больше точности и полностью обходится без проблемы разной длины месяцев.

От 22 июля 1985 до 10 апреля 2026:

  • общее число дней = (2026 - 1985) × 365 + дни високосных лет + поправка на конкретные даты
  • проще: воспользоваться Калькулятором возраста, который показывает общее число дней, недель и часов вместе с результатом в годах/месяцах/днях

Общее количество дней полезно для:

  • отслеживания развития младенцев (в педиатрии часто используют недели в первые 2 года)
  • систем проверки возраста, где нужны дни, а не календарные годы
  • исторических и научных задач, где важна точная длительность

Одна неделя — это ровно 7 дней. Один час — 1/24 суток. Чтобы перевести дни в часы, умножьте на 24. Чтобы перевести в недели, разделите на 7.

Расчёт возраста в таблицах (Excel / Google Sheets)

В Microsoft Excel или Google Sheets функция DATEDIF может посчитать компоненты возраста:

=DATEDIF(birthdate, today, "Y")          — полные годы
=DATEDIF(birthdate, today, "YM")         — месяцы после последнего дня рождения
=DATEDIF(birthdate, today, "MD")         — дни после последней месячной годовщины

Объединение: =DATEDIF(A1,TODAY(),"Y")&" years, "&DATEDIF(A1,TODAY(),"YM")&" months, "&DATEDIF(A1,TODAY(),"MD")&" days"

Примечание: DATEDIF — недокументированная функция Excel (унаследована от Lotus 1-2-3) и у неё есть известные ошибки для параметра "MD" в некоторых датах конца месяца. Для надёжного результата Калькулятор возраста чаще надёжнее, чем формулы в таблицах, когда важна точность.

Почему разные инструменты дают разные результаты

Калькуляторы возраста иногда расходятся на 1 день, особенно в случаях:

  • дней рождения в конце месяца (31 января, 31 марта и т.п.)
  • дня накануне дня рождения
  • расчётов на конец февраля в високосные/невисокосные годы

Эти различия обычно связаны с тем, как инструмент обрабатывает «прижатие» к концу месяца и считает ли он день рождения как день 0 или день 1. Универсально «единственно правильного» ответа для крайних случаев нет — конвенции зависят от страны и правового контекста. Инструмент Dни между датами может помочь отдельно проверить «сырое» число дней.

Похожие статьи