veo que las soluciones no son tan distintas a lo planteado por mi, e incluso alguna de ellas no funcionaria bien, puesto que algun festivo puede ser tambien domingo, cosa que tambien deberia controlar.
de todas maneras muchas gracias a todos por vuestras aportaciones, y si alguno se le ocurre alguna forma mas eficiente, no dude en indicarmela.