Обновлено:
Как посчитать сколько лет
Чтобы точно посчитать сколько лет прошло с определённой даты, нужно учитывать не только разницу в годах, но и месяцы и дни. Самый частый случай – вычисление возраста человека по дате рождения. Разберём все методы: от простого ручного расчёта до автоматического с помощью JavaScript и онлайн-калькулятора.
Калькулятор выше автоматически вычисляет возраст по дате рождения. Введите дату в формате ДД.ММ.ГГГГ и получите точное количество полных лет, месяцев и дней.
Как посчитать возраст по дате рождения вручную
Чтобы посчитать возраст человека, выполните три шага:
- Вычислите разницу в годах между текущим годом и годом рождения. Например, для рождения в 1990 году и текущего 2026 года разница: 2026 – 1990 = 36 лет.
- Определите, прошел день рождения в текущем году. Сравните текущий месяц и день с месяцем и днем рождения.
- Если день рождения ещё не прошёл, уменьшите полученный возраст на 1 год.
Пример: Дата рождения 15 января 1990 года. Текущая дата 10 мая 2026 года.
- Разница в годах: 2026 – 1990 = 36 лет.
- Январь (месяц рождения) уже прошёл в текущем году (май > январь), поэтому день рождения прошёл.
- Возраст: 36 лет.
Если текущая дата 1 января 2026 года, январь только начался, но день 1 меньше дня рождения 15. Поэтому день рождения ещё не прошёл, возраст: 36 – 1 = 35 лет.
Как посчитать возраст в JavaScript
Для автоматизации расчёта в программах используется JavaScript. Основной алгоритм тот же, но реализован в коде. Функция принимает дату рождения в формате YYYYMMDD (например, 19900115 для 15 января 1990) и возвращает возраст.
Код из sky.pro выглядит так:
function getAgeFromBirthDate(birthDateString) {
const today = new Date();
const birthDate = new Date(
birthDateString.substr(0, 4),
birthDateString.substr(4, 2) – 1,
birthDateString.substr(6)
);
let age = today.getFullYear() – birthDate.getFullYear();
if (today.getMonth() < birthDate.getMonth() ||
(today.getMonth() === birthDate.getMonth() && today.getDate() < birthDate.getDate())) {
age--;
}
return age;
}
Функция из Хекслет аналогична, но более подробно разбирает строку:
function calculateAge(birthDateString) {
const year = parseInt(birthDateString.substring(0, 4), 10);
const month = parseInt(birthDateString.substring(4, 6), 10) - 1;
const day = parseInt(birthDateString.substring(6, 8), 10);
const birthDate = new Date(year, month, day);
const today = new Date();
let age = today.getFullYear() - birthDate.getFullYear();
const hasBirthdayPassed =
today.getMonth() > month || (today.getMonth() === month && today.getDate() >= day);
if (!hasBirthdayPassed) {
age--;
}
return age;
}
Оба метода корректно учитывают високосные годы и граничные случаи.
Как правильно учесть високосные годы и граничные даты
Високосные годы
Если день рождения – 29 февраля, в невисокосный год возраст увеличивается 1 марта. JavaScript объект Date автоматически корректирует такие даты, поэтому в коде выше всё будет работать правильно. При ручном расчёте нужно помнить, что 29 февраля существует только в годах, которые делятся на 400 или на 4, но не на 100 (например, 2000, 2004, 2024).
Граничные случаи
- День рождения 31 декабря: возраст увеличивается 1 января следующего года. В формуле сравнения месяцев и дней это учитывается автоматически.
- Расчёт для даты в будущем: если пытаетесь посчитать возраст для даты, которая ещё не произошла, результат будет отрицательным. В реальных системах нужно добавить проверку, что дата рождения не позже текущей.
Какие ещё форматы дат можно использовать
Кроме YYYYMMDD, часто встречаются форматы:
DD.MM.YYYY(15.01.1990)MM/DD/YYYY(01/15/1990)YYYY-MM-DD(1990-01-15)
Для использования в формуле или коде нужно привести дату к компонентам: год, месяц, день. Например, для DD.MM.YYYY разделите строку по точке и переставьте компоненты.
При работе с юридическими или финансовыми документами всегда используйте официальную дату из источника.
Где нужно точно посчитать сколько лет
Возраст рассчитывают не только для людей:
- Официальные документы: паспорт, свидетельство о рождении, пенсионные справки.
- Финансы и льготы: детские пособия (до определённого возраста), пенсионный возраст, льготы для определённых возрастных групп.
- Гарантии на товары: возраст автомобиля, техники, для расчёта остатка гарантийного периода.
- Стаж работы: для вычисления трудового стажа и пенсионных баллов.
- Юридические сроки: возраст компании для определённых налоговых режимов или программ поддержки.
Для каждого случая используется тот же принцип: разница между текущей датой и датой начала события.
Часто задаваемые вопросы
Как посчитать возраст, если день рождения ещё не прошёл в текущем году?
Если текущая дата раньше дня рождения в этом году, нужно уменьшить полученный возраст на один год. Например, для рождения 15 декабря 1990 года и текущей даты 1 июня 2026 возраст будет 35 лет (2026 - 1990 - 1).
Как учитываются високосные годы при расчёте возраста?
При ручном расчёте нужно знать, что високосный год добавляет один день в феврале (29 февраля). Если день рождения 29 февраля, в невисокосный год возраст увеличивается 1 марта. Программные методы (JavaScript) учитывают это автоматически.
Можно ли посчитать возраст по дате в формате DD.MM.YYYY?
Да, нужно сначала преобразовать дату в стандартный формат. Например, “15.01.1990” → год 1990, месяц 01, день 15. После этого применяются обычные формулы расчёта.
Как посчитать возраст компании или автомобиля?
Возраст любого объекта вычисляется по тому же принципу: от текущей даты отнимается дата создания или выпуска. Для компании это дата регистрации, для автомобиля – дата производства или первой регистрации.
В каких случаях нужно точно знать возраст?
Точный возраст необходим для оформления документов (паспорт, пенсия), получения льгот и пособий, расчёта страховых выплат, определения гарантийного периода товаров, вычисления стажа работы.
Похожие калькуляторы и статьи
- Калькулятор возраста: рассчитайте годы, месяцы, дни
- Сколько лет калькулятор | Рассчитать возраст онлайн
- Калькулятор возраста онлайн – рассчитать возраст по дате рождения
- Расчёт лет ребёнку по дате рождения
- Счётчик лет онлайн – рассчитать точный возраст по дате рождения
- Калькулятор расчета лет ребенку: возраст по дате рождения