Полные годы, потом месяцы
Календарный возраст на выбранную дату: сколько полных лет уже исполнилось, сколько полных месяцев сверх этих лет, сколько дней сверх месяцев. Это язык паспорта и школьной анкеты, не медицина и не «разделить сутки на 365,25».
Контроль: рождение 2000-01-01, на дату 2026-01-01 → 26 лет, 0 месяцев, 0 дней. Раздел: даты и время. За день до дня рождения 2026-06-14 при рождении 2000-06-15 → 25 лет 11 месяцев 30 дней.
Страница не выдаёт биологический возраст, костный возраст и не заменяет свидетельство.
Календарный возраст
полные годы, месяцы, дни
Два входа: дата рождения и «на какую дату». Ответ — полные годы; месяцы и дни страница показывает рядом. Обратно из возраста дату рождения не ищем: одного y мало.
Если «на дату» раньше рождения — ошибка.
Не сутки/365 и не медицина
Не Δ суток: 8000 суток ≠ «21 год» без календаря. Не сдвиг на n. Не часы жизни — для этого сначала сутки, потом ×86400, и то грубо.
Не пенсионная таблица и не «полных учебных лет».
Как пользоваться
Оставьте искомым полные годы. Введите рождение и дату, на которую спрашивают (сегодня, 1 сентября, день олимпиады). Обе даты календарные UTC.
Родитель практика.
Примеры
1. День рождения. 2000-01-01 на 2026-01-01 → 26; 0; 0.
2. За день до. 2000-06-15 на 2026-06-14 → 25; 11; 30.
3. После 29 февраля. 2020-02-29 на 2021-02-28 → 0; 11; 30.
4. В день рождения. те же даты → 0; 0; 0.
5. Запрет. «на дату» раньше рождения.
Ещё задачи
Ребёнок родился 31 марта. На 30 апреля того же года: 0 лет, 0 месяцев, 30 дней (март 31, занять месяц не пришлось: апрель 30 ≥ 31? d = 30−31 = −1, предыдущий месяц март 31, d = 30, m = 4−3−1 = 0, y = 0). Итог 0; 0; 30. Не «1 месяц».
Класс: к 1 сентября должно быть полных 6 лет. Рождение 2019-09-02 на 2025-09-01 → ещё 5 полных. Страница не решает приём в школу, только цифры.
Якорь 26 на двух первых января 2000 и 2026.
Связь с сутками: те же даты дают 9497 суток (проверьте, если нужно), но анкета просит годы.
Не проценты жизни: «прожил 50 %» — не YMD.
Младенец 0; 0; 0 в день рождения. На следующий день 0; 0; 1, пока не пройдёт календарный месяц той же датой.
После лет иногда просят n суток до дня рождения: возьмите ближайшую годовщину и разность.
Две разные «даты на момент» — два запуска, страница историю не копит.
Имя месяца в ответе не пишется: число месяцев 0…11.
Не путайте поле d возраста с датой. Дата — «на дату», дни сверх месяцев — в extras.
Совершеннолетие 18 лет: рождение 2008-09-01 на 2026-09-01 даёт 18; 0; 0. Накануне 2026-08-31 ещё 17 полных. Страница закон не применяет, только вычитание дат.
Пара «сегодня» в условии олимпиады: подставьте дату тура, не дату заполнения бланка, если они разные.
Близнецы с одним днём рождения всегда одного календарного возраста на одну «на дату». Разница минут рождения сюда не входит.
Школьный журнал «исполнилось в этом учебном году»: это не поле страницы. Вы запускаете на 31 декабря или на 1 сентября — как написано в приказе, не как «средний возраст класса».
Школа: занять месяц
Алгоритм как вычитание столбиком: дни, потом месяцы, потом годы. Если дней не хватает, занимаете длину предыдущего месяца. Если месяцев не хватает, занимаете 12 и уменьшаете годы.
Памятка: не делить на 365; високос сидит в длине февраля.
Контроль совпадающих дат → нули. Соседний день после рождения → 0; 0; 1.
Итог: два входа, три числа в ответе, прошлое «на дату» нельзя.
Чертёж: две даты на оси, скобки лет, месяцев, дней.
Хаб дат держит возраст отдельно от Δ суток.
29 февраля, день рождения, младенец
Рождённые 29 февраля в невисокосный год в быту «отмечают 28-го или 1 марта». Страница на 28 февраля ещё не даёт полный год: 29-го числа нет, годовщина не наступила. На 1 марта уже 1 год 0 мес. 1 дн. (от 29 фев к 1 мар: y=1, m=0, d=1). Проверьте, если нужно, запуском.
День рождения: m = 0 и d = 0, годы выросли.
Якорь «за день до» 25; 11; 30.
Поля y, m, d
y — искомое. m и d считаются сами, их не вводят. Не заполняйте их вручную: роль выхода.
Проверка: в день рождения только y растёт, m и d нули.
Не ищите часы жизни. Нет поля времени.
Сосед по суткам: Δ.
UTC: «сегодня» вводите как дату, которую называет условие, не как часы браузера за полночью в другом поясе.
Целые: лет 26, не 26,5. Дробный возраст — тетрадь после YMD.
Типичные ошибки
- Разделить сутки на 365.
- Считать 28 февраля годовщиной 29 февраля.
- Путать с одной разностью суток.
- Дата раньше рождения.
- Ждать медицинское заключение.
Соседи: разница дат, прибавить дни, длительность.
Частые вопросы
- Как считается возраст?
- Полные годы, затем полные месяцы, затем дни. 2000-01-01 на 2026-01-01 → 26 лет 0 мес. 0 дн.
- Где месяцы и дни?
- В шагах и дополнительных полях ответа. Искомое по умолчанию — полные годы.
- Это число суток?
- Разница дат даёт одно число. Возраст так не пишут в паспорте.
- Дата раньше рождения?
- Запрещена. Будущее «на дату» до дня рождения не бывает.
- 29 февраля?
- С 2020-02-29 на 2021-02-28 страница даёт 0 лет 11 мес. 30 дн.: годовщина 29 февраля в невисокос ещё не наступила.
- Где хаб?
- Даты и время и практика.