как вычислить возраст по дате рождения в формате yyyymmdd на javascript
Для вычисления возраста на JavaScript по дате рождения в формате yyyymmdd
, вам необходимо выполнить несколько шагов: разобрать строку даты рождения, создать объект Date
, получить текущую дату и затем вычислить разницу между ними. Вот детальный пример:
- Разделить строку даты на компоненты: год, месяц и день.
- Создать объект
Date
на основе этих значений. - Получить текущую дату и вычислить разницу в годах.
- Проверить, наступил ли день рождения в текущем году, чтобы скорректировать возраст, если необходимо.
Вот как это может выглядеть в коде:
function calculateAge(birthDateString) {
// Обрабатываем аргумент birthDateString (yyyyMMdd)
const year = parseInt(birthDateString.substring(0, 4), 10);
const month = parseInt(birthDateString.substring(4, 6), 10) - 1; // Месяцы начинаются с 0
const day = parseInt(birthDateString.substring(6, 8), 10);
// Создаем объект Date для даты рождения
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--; // Если дня рождения еще не было в этом году, уменьшаем на 1
}
return age;
}
// Пример использования
const birthDateString = "19900115"; // 15 января 1990 года
const age = calculateAge(birthDateString);
console.log(`Ваш возраст: ${age} лет`);
Пояснения:
Парсинг строки: Мы берем первые 4 символа для года, следующие 2 для месяца и последние 2 для дня. Также помним, что месяцы в JavaScript начинаются с 0 (январь - 0, февраль - 1 и т.д.), поэтому от месяца мы вычитаем 1.
Создание объекта Date: Используя разобранные значения, создаем новый объект
Date
, который будет представлять дату рождения.Нахождение текущей даты: Создаем еще один объект
Date
, который представляет текущую дату.Вычисление возраста: Разница в годах вычисляется простым вычитанием. Однако, если день рождения еще не наступил в текущем году, мы уменьшаем возраст на 1.
Эта функция может быть использована для быстрого вычисления возраста, и вы можете легко адаптировать ее по мере необходимости для ваших конкретных требований (например, добавлением проверки на корректность входных данных).