I've been slowly working on a plugin I call SeasonalCSS. My inspiration comes from Google, who serve up a modified logo based on if the day is a special day or not.
The way it works is it determines if the current time, in the form of a unix timestamp, is a holiday or not, and returns a custom stylesheet if it is, and the default if it is not.
It is called simply by using getCSS() in your blog page.
The configuration requires you to setup your holidays (i.e., the 4th of July, the 25th of December, the third monday in October, etc).
The default comes loaded with a nice American layout:
-New Years Day
-Martin Luther King, Jr Day
-St. Patricks Day
-Fourth of July
-New Years Eve
It's all flexible so no hard coding should be necessary. The functions are a little tricky in defining the generic holidays, but I trust existing holidays, comments, etc will be enough to help you muddle your way through.
It's begging for integration into the admincp so if you want to do that, feel free and let me know.
This is a limited release, so it stays on my site for now. No attachment. But feel free to cut and paste. That's what God gave you Ctrl-A/Ctrl-C/Ctrl-V for.
Here it is.