Нам нужно найти начало недели (Задан), учитывая эти две переменные:Более простой способ найти начало недели для любого старта день
now
- текущий DateTimeSTART_DAY
- день недели (0-6, где 0 является понедельником и 6 является воскресеньем), что мы считаем «начало недели»
мы можем использовать цикл, но это кажется слишком много шагов для простая проблема:
week_start = datetime(now.year, now.month, now.day)
while week_start.weekday() != START_DAY:
week_start = week_start - timedelta(days=1)
Это очень легко, если START_DAY
всегда 0
(понедельник):
week_start = datetime(now.year, now.month, now.day) - timedelta(days=now.weekday())
Или всегда 6
(воскресенье):
week_start = datetime(now.year, now.month, now.day) - timedelta(days=(0 if now.weekday() == START_DAY else now.weekday() + 1))
Что представляет собой простой метод расчета начало недели для любого значения START_DAY
?