Как я могу получить список определенных дней недели за определенный период времени?
Я создаю календарь, который позволяет пользователям бронировать выходные дни. Сейчас я добавляю функцию повторения, которая похожа на повторение событий в календаре MS Teams.
Я дошел до того, что отсортировал все дни недели. Например, если кто-то хочет, чтобы первые понедельники января были выходными, у меня будет список всех понедельников в выбранном месяце: [[datetime.date(2022, 1, 3), datetime.date(2022, 1, 10), datetime.date(2022, 1, 17), datetime.date(2022, 1, 24), datetime.date(2022, 1, 31), datetime. date(2022, 2, 7), datetime.date(2022, 2, 14), datetime.date(2022, 2, 21), datetime.date(2022, 2, 28), datetime.date(2022, 3, 7), datetime.date(2022, 3, 14), datetime.date(2022, 3, 21), datetime.date(2022, 3, 28)]
Теперь как мне получить понедельники (или любые другие дни недели, выбранные пользователем) и поместить их в новый список, чтобы я мог разместить их в выходных днях?
Например. В приведенном выше списке, если пользователь выбрал, что хочет получить выходной во второй понедельник, я хочу поместить 10 января, 14 февраля и 14 марта в новый список
Вот как я получаю выбранные дни для первой недели:
if interval == 'months':
monthly_offs = []
if month_recur == 'first-week':
if mon_mon:
sd = datetime.strptime(start_date, "%Y-%m-%d")
ed = datetime.strptime(end_date, "%Y-%m-%d")
for d_ord in range(sd.toordinal(), ed.toordinal() + 1):
d = date.fromordinal(d_ord)
if d.weekday() == 0:
monthly_offs.append(d)
print(monthly_offs)