Если я правильно понимаю ваш вопрос, вы хотите, чтобы вы могли взять любую случайную дату и перевести ее в диапазон дат Пт с 8 вечера до понедельника 8 утра?
1002 * Вы можете сделать это:
import datetime
def make_payload(date_str):
today = datetime.date.fromisoformat(date_str)
monday = datetime.datetime.fromisoformat(
str(datetime.date.fromordinal(
(today.toordinal() - today.toordinal() % 7) + 1)) + " 08:00")
friday = datetime.datetime.fromisoformat(
str(datetime.date.fromordinal(
(today.toordinal() - today.toordinal() % 7) - 2)) + " 20:00")
payload = {'since': friday.isoformat(),
'until': monday.isoformat()}
return payload
payload = make_payload('2020-04-07')
print(payload['since'], payload['until'])
, который будет выводить:
2020-04-03T20: 00: 00 2020-04-06T08: 00: 00
требуется дата в ISO отформатировать в качестве входных данных и настроить его на последний календарный период пятница-понедельник. Вы можете настроить monday
и friday
, чтобы дать разные дни, если это не совсем то, что вы хотите, но это дает основную идею c.