Con il mio metodo avresti:
Situazione:
|__Wwwhh|wwwwwhh|wwwwwhh|wwwwwH_|
Che sarebbero 25 gg., cioè 3sett.+4gg., visti così:
|__Wwwh h|wwwwwh h|wwwwwh h|wwwwwH_|
Facilmente trovi che 25=3*7+4 (con le mie formule di sopra o con: 25%7=4, giorni, e poi (25-4)/7=21/7=3, settimane).
Quindi - come dicevo - hai certamente 2*numerosettimane=2*3=6 festivi che sarebbero (in maiuscolo)
|__Wwwh H|wwwwwH H|wwwwwH H|wwwwwH_|
dopodichè valuti i primi 4gg. che per ora non hai considerato, siccome stai partendo da un mercoledì e finisci con un sabato (che sarebbe mercoledì+(z-1) dove z=4, quindi mercoledì+3=sabato), devi aggiungere 1 (questo sabato appunto) e ottieni:
1+6=7 festivi
In pratica il mio "trucco" è di dividere i giorni non nelle settimane "formali", ma in gruppi di 7 giorni (a partire dalla coda, in effetti)
Semplificando un po' le formule dovresti fare (tra parentesi il rif. al tuo esempio):
1. calcolo giorni totali (25)
2. calcolo in giorni+settimane (=4gg + 3sett.)
3. calcolo del giorno della settimana del primo blocco di giorni (i 4 iniziali: parto da mercoledì e arrivo a sabato in questo caso)
4. computo finale:
a. giorni festivi "certi" (numerosettimaneintere*2=3*2=6)
b. giorni festivi extra nel primo blocco (3 casi: se finisco una domenica aggiungo 2, se finisco un sabato aggiungo 1, se finisco prima aggiungo 0) (qui si finisce di sabato: aggiungo 1)
c. totale di a+b = 6+1 = 7
In caso il conteggio del blocco iniziale dia problemi (io ho provato anche casi particolari, p.es. partendo da un sabato, e funzionava, ma magari è saltato qualcosa) fai una semplice scansione solo per quel blocco.