@Alex161

Объясните пожалуйста как это работает?

from datetime import date

def calculate_age(born):
    today = date.today()
    try: 
        birthday = born.replace(year=today.year)
    except ValueError: # raised when birth date is February 29 and the current year is not a leap year
        birthday = born.replace(year=today.year, month=born.month+1, day=1)
    if birthday > today:
        return today.year - born.year - 1
    else:
        return today.year - born.year
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
@soloveid
born - это дата рождения человека
birthday - день рождения в этом году (так как год установили на текущий год)
Если не удалось сменить год, то предполагается, что это из-за 29 февраля и смещают дату рождения на 1 марта
Осталось вернуть возраст по этим данным:
если день рождения ещё не наступил в этом году, то разница годов минус 1
Если уже было, то просто разница годов.

Но наверно есть проще функция, чем вот такая.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы