in reply to Business

As jcwren pointed out there are many different days that count as holidays. Just as you like it.
So I'd tend to use a hash to store the holidays though you can even support different countries or taste :-)
e.g.
holiday = (de => (common =>( xmas =>[25.12.,26.12.,27.12], newyear =>[01.01.]), saxony =>( summer =>[dd.mm.,dd.mm.], autumn =>[dd.mm.,dd.mm.]), bavaria =>( summer =>[dd.mm.,dd.mm.], autumn =>[dd.mm.,dd.mm.]) ), us =>(common =>( xmas =>[25.12.,26.12.27.12], newyear =>[01.01.]), ....), ....) );
Well you could use any structure as you like, but I don't know any formula to just generate all those holidays as they especially in germany rotate (school holidays to ensure everybody gets once in a while the nice season and to support tourism indusry), he he
So all I say herewith just do it in the common way as calendars and time schedulers due, simply note the holidays for each region separately and display them on demand.

Have a nice day
All decision is left to your taste
Update
little seems to be in need of getting familar with tose modules. (thanx to $code or die).