I'm actually working to do one for one of my sites; we have a "seasonal ticker" that introduces users to a countdown of the next season, and as a part of that I'm working to introduce a holiday announcement; the issue though is that not all holidays are on a specific day of the year so the ticker has to be updated yearly, but this is what I have so far:
/* PHP CODE HERE */
if((date("m") == 01) && (date("d") == 01)) {
$holiday_blurb = "Happy New Year!";
$holiday_name = "New Years Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 02) && (date("d") == 02)) {
$holiday_blurb = "";
$holiday_name = "Groundhog Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 02) && (date("d") == 14)) {
$holiday_blurb = "";
$holiday_name = "Valentine's Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 04) && (date("d") == 22)) {
$holiday_blurb = "";
$holiday_name = "Earth Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 04) && (date("d") == 25)) {
// Changes Every Year, Last Friday in April
$holiday_blurb = "";
$holiday_name = "Arbor Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 05) && (date("d") == 11)) {
// Changes Every Year, Second Sunday in May
$holiday_blurb = "";
$holiday_name = "Arbor Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 05) && (date("d") == 26)) {
// Changes Every Year, Last Monday in May
$holiday_blurb = "";
$holiday_name = "Memorial Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 06) && (date("d") == 14)) {
$holiday_blurb = "";
$holiday_name = "Flag Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 06) && (date("d") == 15)) {
// Changes Every Year, Third Sunday of June
$holiday_blurb = "";
$holiday_name = "Fathers Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 07) && (date("d") == 04)) {
$holiday_blurb = "Happy 4th of July!";
$holiday_name = "Independance Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 09) && (date("d") == 11)) {
$holiday_blurb = "";
$holiday_name = "Patriot Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 10) && (date("d") == 31)) {
$holiday_blurb = "Happy Halloween!";
$holiday_name = "Halloween";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 11) && (date("d") == 11)) {
$holiday_blurb = "";
$holiday_name = "Veterans Day";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 11) && (date("d") == 28)) {
// Changes Every Year, Fourth Thursday in November
$holiday_blurb = "Happy Thanksgiving!";
$holiday_name = "Thanksgiving";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 12) && (date("d") == 24)) {
$holiday_blurb = "Merry Christmas!";
$holiday_name = "Christmas Eve";
$holiday_image = "";
$holiday_url = "";
} elseif((date("m") == 12) && (date("d") == 25)) {
$holiday_blurb = "Merry Christmas!";
$holiday_name = "Christmas Day";
$holiday_image = "";
$holiday_url = "";
} elseif(date("m") == 12) {
$holiday_blurb = "Happy Holiday's!";
$holiday_name = "Holiday Season";
$holiday_image = "";
$holiday_url = "";
} else {
$holiday_blurb = "None";
$holiday_name = "None";
$holiday_image = "";
$holiday_url = "";
}
if($holiday_name != "") {
$holiday = "\n\n<br /><br />\n\n<div align=\"center\">\n";
if($holiday_image != "") { $holiday .= "\t<img src=\"". $holiday_image ."\" alt=\"". $holiday_blurb ."\" title=\"". $holiday_blurb ."\" />\n<br /><br />\n\n"; }
if($holiday_url != "") { $holiday .= "\t<strong><a href=\"". $holiday_url ."\" target=\"_blank\">". $holiday_name ."</a></strong><hr />\n"; }
if($holiday_url == "") { $holiday .= "\t<strong>". $holiday_name ."</strong><hr />\n"; }
$holiday .= "\t". $holiday_blurb;
$holiday .= "\n</div>\n\n";
} else { $holiday = ""; }
/* BODY HERE */
$body = <<<EOF
$holiday
EOF;
I've been working on this during the week but never really tested it in the UBB, what I put above is just what I've got working using a standalone script but put the ubb formatting for a custom island in place for you; your mileage may vary.
Basically the if statements have a date (with leading zero's), if it's that date then it uses the data supplied; URL is used if you want it to be linked to a URL (used as a description of the holiday), if it's not displayed then it'll be ignored by the "pull together" code at the bottom. The else statement holds the "no holiday" indication.