Найдите дату окончания, если у нас есть дата начала и интервал. Исключая индивидуальный список праздников и выходных. В Python (Django)

Aug 17 2020

Итак, чего я пытаюсь достичь.

start_date = "2020-07-16"
number_of_days = 15
holidays = ["2020-07-19",2020-07-21]

Теперь я хочу рассчитать дату окончания, то есть 16 августа + 15 дней, исключая все праздничные дни, которые я указываю в списке, и все выходные (воскресенье + суббота).

Любые предложения о том, как я могу этого добиться. Решение, которое я нашел до сих пор, - это использование NumPy, но оно не соответствует моим требованиям.

Ответы

2 MareksNo Aug 17 2020 at 18:11
total_days = number_of_days
for i in number_of_days:
    current_day = start_data + timedelta(days=i)
    if current_day in holidays:
        total_days += 1
    elif current_day.isoweekday() in [6, 7]:
        total_days += 1
end_date = start_date + timedelta(days= total_days)

Я надеюсь, что это может, по крайней мере, приблизиться к ответу, который вы хотите, я не уверен в точном синтаксисе, так как сейчас разговариваю по телефону.

Но, глядя на ответ NumPy, что именно он не соответствует вашим требованиям?