Как вычислить возраст в годах, месяцах и днях
Фразы вроде «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 июля 2025 | 22 авг, 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ни между датами может помочь отдельно проверить «сырое» число дней.


