Как правильно посчитать дни между датами?
Изучаю тему datetime и столкнулась с тем, что программа неверно считает количество дней. Помогите разобраться в чём проблема. Так же приму советы по улучшению кода.
from datetime import datetime
import datetime as DT
data = input('Введите дату рождения в формате ГГГГ/ММ/ДД: ')
newborn = DT.datetime.strptime(data, '%Y/%M/%d')
now = datetime.today()
days= now-newborn
print ('Вы прожили: ',days)
Ответы (1 шт):
Автор решения: Deniska SosiSka
→ Ссылка
Для получения месяца используйте ключ %m
, а не %M
.
%m
- месяц, а %M
- минуты.
К тому же при вычислении разницы в днях используйте атрибут days
, что-то вроде:
days = (now - newborn).days
В качестве улучшения можно добавить обработку исключения ValueError
, через try
except
и использовать для вывода форматированные строки:
from datetime import datetime
data = input('Введите дату рождения в формате ГГГГ/ММ/ДД: ')
try:
birthday = datetime.strptime(birthday_str, '%Y-%m-%d')
except ValueError:
print("Неверный формат даты. Используйте формат ГГГГ-ММ-ДД.")
exit()
today = datetime.today()
age_days = (today - birthday).days
print(f"Вы прожили: {age_days} дней")