Trova la data di fine se abbiamo la data e l'intervallo di inizio. Escluso elenco festività e fine settimana personalizzati. In Python (Django)

Aug 17 2020

Quindi, quello che sto cercando di ottenere è.

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

Ora voglio calcolare la data di fine cioè 16 agosto + 15 giorni escluse tutte le festività personalizzate che fornisco nell'elenco e tutti i fine settimana (domenica + sabato).

Qualche suggerimento su come potrei realizzarlo. La soluzione che ho trovato fino ad ora è questo usando NumPy ma non soddisfa le mie esigenze.

Risposte

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)

Spero che questo possa almeno avvicinarsi alla risposta che desideri, non sono sicuro di conoscere la sintassi esatta dato che sono attualmente su un telefono.

Ma guardando la risposta di NumPy, cosa esattamente non soddisfa le tue esigenze?