> Как посчитать возраст в годах между текущей датой и датой рождения в Python (Python)

Уровень: senior · Роль: backend · Категория: Технические вопросы

Компании: Ozon

Стек: Python

> Пример ответа

Для расчёта возраста в годах между текущей датой и датой рождения в Python лучше всего использовать модуль datetime. Вот надёжный способ, учитывающий високосные годы и границы месяцев:

PYTHON
from datetime import date
def 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 -= 1
return age
# Пример использования
birth = date(1990, 5, 15)
print(calculate_age(birth)) # Выведет возраст в годах

Этот код сначала вычисляет разницу в годах, затем корректирует её, если день рождения в текущем году ещё не наступил. Сравнение кортежей (месяц, день) корректно обрабатывает все даты, включая 29 февраля (для високосных годов сравнение будет работать с 28 февраля, что даёт правильный возраст до 1 марта).

Альтернативный вариант с использованием dateutil.relativedelta (требует установки библиотеки python-dateutil):

PYTHON
from datetime import date
from dateutil.relativedelta import relativedelta
def calculate_age(birth_date):
return relativedelta(date.today(), birth_date).years

Оба подхода дают точный возраст в полных годах.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью