Количество дат между двумя датами

#python #date #datetime

Вопрос:

Я хотел бы получить количество дней между двумя датами. Но дни не обязательно должны быть полными 24-часовыми днями. Если первое свидание состоится прямо перед полуночью, а второе-сразу после полуночи, я все равно хочу, чтобы оно считалось одним днем.

 from datetime import datetime
a = datetime.strptime("2021-07-13 22:00:00", "%Y-%m-%d %H:%M:%S")
b = datetime.strptime("2021-07-14 06:00:00", "%Y-%m-%d %H:%M:%S")

print((b-a).days)

# Output: 0
# Expected output: 1
 

Ответ №1:

Просто удалите компонент времени из datetime вызова .date() ,

 from datetime import datetime
a = datetime.strptime("2021-07-13 22:00:00", "%Y-%m-%d %H:%M:%S").date()
b = datetime.strptime("2021-07-14 06:00:00", "%Y-%m-%d %H:%M:%S").date()

print((b-a).days)
 

Комментарии:

1. Так что это было бы (b.date()-a.date()).days в исходном коде в вопросе

2. @CedricZoppolo уверен, что если вы хотите a и b хотите оставаться datetime объектами, а date не объектами, вы могли бы это сделать.