Как определить ближайшую дату по дню недели python

Сегодня 21.09 Понедельник. След. занятие 22.09 (Вторник). Задача состоит в том, что бы получить дату ближайшего вторника (22.09)


Ответы (1 шт):

Автор решения: Tr1nks

На скороую руку набросал так:

import datetime

WEEKDAYS = ('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')


def next_closest(from_date, search_day):
    if isinstance(search_day, str):
        search_day = WEEKDAYS.index(search_day.lower())

    from_day = from_date.weekday()
    different_days = search_day - from_day if from_day < search_day else 7 - from_day + search_day
    return from_date + datetime.timedelta(days=different_days)

print(next_closest(datetime.datetime.strptime('21-09-2020','%d-%m-%Y'),'tuesday'))

сильно не тестировал, но должно работать

→ Ссылка