potresti usare il mio schema... l'unica cosa che non ho ben verificato è la gestione dei giorni extra (quelli che "avanzano" oltre le settimane intere), per i quali però potresti fare una semplice scansione, visto che comunque sarebbero al massimo 6 iterazioni (quindi "limitate superiormente")... se poi vuoi aggiungere la gestione dei festivi "speciali" si può fare anche con il metodo matematico: alla fine di tutto il calcolo si fa una scansione della lista dei festivi e si contano quelli che cadono nell'intervallo considerato.