una tabella del tipo

giorno_dell_anno | anno | festivo

in questo modo fai una semplice select con 4 condizioni ...

festivo = 0, anno quello che ti interessa e i giorni dell'anno compresi nell'intervallo delle due date

se invece la data ti sborda, nel senso che inizia in un anno e finisce in un altro fai una cosa del tipo

(giorno_dell_anno >= giorno_anno_partenza && anno = anno_partenza) || (giorno_dell_anno <= giorno_anno_arrivo && anno = anno_arrivo)