Это пример вычислений внутри кольца mod 7
.
import datetime
def next_day(given_date, weekday):
day_shift = (weekday - given_date.weekday()) % 7
return given_date + datetime.timedelta(days=day_shift)
now = datetime.date(2018, 4, 15) # sunday
names = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday',
'saturday', 'sunday']
for weekday in range(7):
print(names[weekday], next_day(now, weekday))
выведет:
monday 2018-04-16
tuesday 2018-04-17
wednesday 2018-04-18
thursday 2018-04-19
friday 2018-04-20
saturday 2018-04-21
sunday 2018-04-15
Как вы видите, это правильно даст вам следующий понедельник, вторник, среда, четвергПятница и суббота.И он также понял, что 2018-04-15
- воскресенье и вернул текущее воскресенье вместо следующего.
Я уверен, что вы найдете этот ответ чрезвычайно полезным после 7 лет; -)