Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

Как посчитать возраст по году рождения

Возраст в годах — это разница между текущим годом и годом рождения; уточнить его помогает проверка, был ли уже день рождения.

Простой способ: по году

Если нужен приблизительный возраст, достаточно вычесть год рождения из текущего года. Текущий год берём из даты сегодня.

from datetime import date
year = int(input('Год рождения: '))
print(date.today().year - year)

Точный способ: с месяцем и днём

Точный возраст учитывает, наступил ли уже день рождения в этом году. Если ещё нет — вычитаем единицу. Сравнение пар (месяц, день) делает это в одну строку.

from datetime import date
b = date(2012, 9, 15)
t = date.today()
age = t.year - b.year - ((t.month, t.day) < (b.month, b.day))
print(age)

Почему работает вычитание True

В Python True равен 1, а False равен 0. Поэтому выражение «(t.month, t.day) < (b.month, b.day)» само вычитает единицу, когда день рождения ещё впереди.

Частые вопросы

Зачем сравнивать кортежи? Пара (месяц, день) сравнивается по порядку — сначала месяцы, при равенстве дни; это ровно то, что нужно.

Можно ли считать возраст в днях? Да: вычтите даты и возьмите поле .days у результата.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание