> Как посчитать возраст в годах между текущей датой и датой рождения в Python (Python)
Уровень: senior · Роль: backend · Категория: Технические вопросы
Компании: Ozon
Стек: Python
> Пример ответа
Для расчёта возраста в годах между текущей датой и датой рождения в Python лучше всего использовать модуль datetime. Вот надёжный способ, учитывающий високосные годы и границы месяцев:
PYTHONfrom datetime import datedef calculate_age(birth_date):today = date.today()age = today.year - birth_date.year# Проверяем, был ли уже день рождения в этом годуif (today.month, today.day) < (birth_date.month, birth_date.day):age -= 1return age# Пример использованияbirth = date(1990, 5, 15)print(calculate_age(birth)) # Выведет возраст в годах
Этот код сначала вычисляет разницу в годах, затем корректирует её, если день рождения в текущем году ещё не наступил. Сравнение кортежей (месяц, день) корректно обрабатывает все даты, включая 29 февраля (для високосных годов сравнение будет работать с 28 февраля, что даёт правильный возраст до 1 марта).
Альтернативный вариант с использованием dateutil.relativedelta (требует установки библиотеки python-dateutil):
PYTHONfrom datetime import datefrom dateutil.relativedelta import relativedeltadef calculate_age(birth_date):return relativedelta(date.today(), birth_date).years
Оба подхода дают точный возраст в полных годах.
> Похожие задачи по backend
Как параллелить выполнение функции в Python
Как вывести в одном датафрейме результаты по студентам с баллами по математике и биологии ниже 80
Какие есть ограничения на ключи в dict в Python?
Как выбрать строку с определённым индексом в DataFrame
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью