In realtà la funzione l'ho buttata giù quando ho letto il tuo post, non ho niente di pronto, ho intuito che parlavi di prenotazioni in quanto ti riferivi a notti...

Ho provato e a cavallo di due anni funziona bene, quello che non funziona è se il calcolo interessa più di due mesi
(es. 2016-05-30 -> 2016-08-05), questo è proprio da rivedere, anzi rifare.

il DST è praticamente automatico, nell'ultimo mese basta prendere il giorno di out - 1 (es. out il 15 sono 14 notti)