Python DateTime минус TimeDelta против TimeDelta минус DateTime - PullRequest
0 голосов
/ 04 октября 2019

Допустим, у меня есть дата и время now:

import datetime
now = datetime.datetime(2019, 10, 3, 1, 57, 3, 939862)

print(now)
2019-10-03 01:57:03.939862

, и у меня есть временная шкала для начала рабочего дня (07:00:00).

start_biz_dt = datetime.timedelta(hours = 7)

Я хочу сделать расчет, который даст мне время от now до start of business day. т.е. я хочу:

6:03:56.060138

Но я, очевидно, не могу сделать:

start_biz_dt - now

Я мог бы дать start_biz_dt ту же дату, что и now, но у меня есть много дат встолбец различных дат, так что это может быть не лучшим способом. Любая помощь приветствуется.

1 Ответ

1 голос
/ 04 октября 2019

Чтобы найти ближайший 07:00:00, вы можете использовать следующий код:

from datetime import datetime, timedelta

start_of_business_day = datetime.now().replace(hour=7, minute=0, second=0)
if start_of_business_day < datetime.now():
    start_of_business_day += timedelta(days=1)

Чтобы вычислить, сколько осталось, просто замените текущую дату и время из start_of_business_day:

sleep_time = start_of_business_day - datetime.now()
...