Как посчитать возраст по году рождения
Возраст в годах — это разница между текущим годом и годом рождения; уточнить его помогает проверка, был ли уже день рождения.
Простой способ: по году
Если нужен приблизительный возраст, достаточно вычесть год рождения из текущего года. Текущий год берём из даты сегодня.
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 у результата.
Начать игру бесплатно