Encontre a data de término se tivermos data de início e intervalo. Excluindo lista de feriados e fins de semana personalizados. Em Python (Django)

Aug 17 2020

Então, o que estou tentando alcançar é.

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

Agora, quero calcular a data de término, ou seja, 16 de agosto + 15 dias, excluindo todos os feriados personalizados que forneço na lista e todos os finais de semana (domingos + sábados).

Alguma sugestão de como eu poderia alcançá-lo. A solução que eu encontrei até agora é esta usando NumPy mas não cumprir minhas exigências.

Respostas

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)

Espero que isso possa pelo menos chegar perto da resposta que você deseja, não tenho certeza sobre a sintaxe exata, pois estou atualmente em um telefone.

Mas olhando para a resposta do NumPy, o que exatamente ele não preenche seus requisitos?