@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
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ответы на вопрос 1
@soloveid
born - это дата рождения человека
birthday - день рождения в этом году (так как год установили на текущий год)
Если не удалось сменить год, то предполагается, что это из-за 29 февраля и смещают дату рождения на 1 марта
Осталось вернуть возраст по этим данным:
если день рождения ещё не наступил в этом году, то разница годов минус 1
Если уже было, то просто разница годов.

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

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

Войти через центр авторизации
Похожие вопросы