Size: a a a

2021 April 13

РС

Роман Саркисян... in Django
Как вариант:
from datetime import datetime
a = datetime.now()
b = datetime(2020,4,14,8,0)
c = b - a
print(c.seconds//60)
источник

АК

Александр Колотов... in Django
Да
Но как сделать так чтобы счёт шёл для каждого нового дня ?
То есть сегодня надо рассчитать до завтра 8 утра
Завтра надо рассчитать до 15.04 8:00
источник

DG

Dmitry Gurinovich in Django
завтрашняя дата - это сегодняшняя + один день
источник

РС

Роман Саркисян... in Django
Как-то так
from datetime import datetime, timedelta
cur_day = datetime.now()
next_day = datetime.now() + timedelta(days=1)
next_datetime = datetime.strptime(next_day.strftime('%Y-%m-%d') + '-8:00', '%Y-%m-%d-%H:%M')
result = next_datetime - cur_day
print(result.seconds//60)
источник

DG

Dmitry Gurinovich in Django
> next_datetime = datetime.strptime(next_day.strftime('%Y-%m-%d') + '-8:00', '%Y-%m-%d-%H:%M')

это черезчур мудрёно
можно проще

next_datetime = datetime.datetime(next_day.year, next_dat.month, next_day.day, 8, 0, 0)
источник

РС

Роман Саркисян... in Django
На чистоту/оптимальность не претендую, просто выкатил рабочее решение)
источник

DG

Dmitry Gurinovich in Django
я не осуждаю тебя :) просто привёл пример для справки, может кому-то пригодится
источник

DG

Dmitry Gurinovich in Django
единственный момент, если этот код будет выполняться после полуночи, то следующие 8 утра будут уже как бы послезавтра
источник

DG

Dmitry Gurinovich in Django
если это критично, то можно
1. в цикле к текущей дате добавлять час, пока время в получающейся дате не превысит  8 утра,
2. потом взять эту дату, округлить до восьми утра
3. и посчитать разницу с текущим временем
источник

АК

Александр Колотов... in Django
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
источник

РС

Роман Саркисян... in Django
Уберите один datetime
источник

АК

Александр Колотов... in Django
этот код самостоятельный или в дополнении к коду Романа Саркесяна? потому что я убрал один datetime и появилась следующая ошибка name 'next_day' is not defined
источник

DG

Dmitry Gurinovich in Django
я привёл пример, когда datetime импортируется как import datetime
источник

АК

Александр Колотов... in Django
я скорее всего туплю на простом.
источник

DG

Dmitry Gurinovich in Django
это в дополнение
источник

DG

Dmitry Gurinovich in Django
мои куски кода можно проигнорировать :)
источник

АК

Александр Колотов... in Django
всем спасибо большое
источник

РС

Роман Саркисян... in Django
Либо использовать так:
from datetime import datetime, timedelta
cur_day = datetime.now()
next_day = datetime.now() + timedelta(days=1)
next_datetime = datetime.datetime(next_day.year, next_dat.month, next_day.day, 8, 0, 0)
result = next_datetime - cur_day
print(result.seconds//60)
источник

АК

Александр Колотов... in Django
😊
источник

DG

Dmitry Gurinovich in Django
т.е. вы решили с edge-кейсами не заморачиваться :)
источник