#python
#питон
Вопрос:
Я хочу, чтобы в прошлом году кто-то отмечал свой день рождения с датой своего рождения.
пример:
if my date of birth is 12/12/1971 and the date know is 4/12/2021 so my last birthday was in 12/12/2020 so the year is equal to 2020
пример2:
if my date of birth is 04/04/2005 and the date know is 4/12/2021 so my last birthday was in 04/04/2021 so the year is equal to 2021
это мой код:
def selfYear(birthdate): today = date.today() birthday = birthdate[0] birthmonth = birthdate[1] birthyear = birthdate[2] currentDate = today.strftime("%d/%m/%Y") currentDate.split('-')
кто-нибудь может помочь мне разобраться в этом
Комментарии:
1. Как ваш код связан с проблемой?
2. Создайте свой день рождения на этот год; если это произойдет после сегодняшнего дня, сделайте резервную копию на год.
3. когда я думаю об этом, это не так
4. вы можете буквально просто передать свой DOB в виде строки и заменить год через
birthdate.replace(birthday.split('-')[-1], time.strftime('%Y'))
(заменить » — » на что-либо, с чем дата будет разделена, например, дд-мм-гг или дд/мм/гг
Ответ №1:
Вычислите дату рождения текущего года и проверьте, сделано это уже или нет, а затем верните значение хорошего года
def last_birthday(birthdate): today = date.today() if birthdate.replace(year=today.year) lt;= today: return today.year return today.year - 1 print(last_birthday(date(1971, 12, 12))) # 2020 print(last_birthday(date(2005, 4, 4))) # 2021
С помощью автоматического преобразования True -gt; 1, False -gt; 0
вы могли бы сделать
def last_birthday(birthdate): today = date.today() return today.year - (birthdate.replace(year=today.year) gt; today)
Ответ №2:
Вы можете использовать этот date.replace
метод.
def last_birthday(birthday:date): current_year = date.today().year birthday.replace(year=current_year) if birthday gt; date.today(): birthday.replace(year=current_year-1) return birthday.year
Комментарии:
1. Запрос был на год, а не на дату.
2. Исправленный. Я все еще думаю, что в большинстве случаев будет использоваться вся дата, поэтому я оставил логику прежней.