
calendar = new Date();
day = calendar.getDay();
month = calendar.getMonth();
date = calendar.getDate();
year = calendar.getYear();
if (year < 1000)
year+=1900
cent = parseInt(year/100);
g = year % 19;
k = parseInt((cent - 17)/25);
i = (cent - parseInt(cent/4) - parseInt((cent - k)/3) + 19*g + 15) % 30;
i = i - parseInt(i/28)*(1 - parseInt(i/28)*parseInt(29/(i+1))*parseInt((21-g)/11));
j = (year + parseInt(year/4) + i + 2 - cent + parseInt(cent/4)) % 7;
l = i - j;
emonth = 3 + parseInt((l + 40)/44);
edate = l + 28 - 31*parseInt((emonth/4));
emonth--;

var dayname = new Array ("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
var monthname = new Array ("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember" );

printholiday = "";

// Easter
if ((month == emonth) && (date == edate)) printholiday = "Ostersonntag";

// January
if (month == 0) {
  if (date == 1) printholiday = "Neujahr";
  else if (date == 6) printholiday = "Heilige Drei Könige";
}

// February
else if (month == 1) {
  if (date == 2) printholiday = "Groundhog Day";
  else if (date == 11) printholiday = "National Foundation Day (Japan)";
  else if (date == 12) printholiday = "Abraham Lincoln's Geburtstag";
  else if (date == 29) printholiday = "Tag des Schaltjahrs";
}

// March
else if (month == 2) {
  if (date == 3) printholiday = "Girl's Day (Japan)";
  else if (date == 17) printholiday = "St. Patrick's Day";
  else if (date == 21) printholiday = "Frühlingsanfang";
  else if ((day == 0) && (date > 24) && (date < 31)) printholiday = "Beginn der Sommerzeit";
}

// April
else if (month == 3) {
  if (date == 1) printholiday = "April Fools' Day";
  else if (date == 8) printholiday = "Buddha's Geburtstag";
}

// May
else if (month == 4) {
  if (date == 1) printholiday = "Mai-Feiertag";
  else if ((day == 0) && (date > 7) && (date< 16)) printholiday = "Muttertag";
  else if ((day == 4) && (date < 16)) printholiday = "Christi Himmelfahrt / Vatertag";
}

// June
else if (month == 5) {
  if (date == 30) printholiday = "Independence Day (Zaire)";
  else if (date == 20) printholiday = "Jahrestag der Gründung der Siegburger Ehrengarde";
  else if (date == 21) printholiday = "Sommeranfang";
}

// July
else if (month == 6) {
  if (date == 4) printholiday = "Independence Day (USA)";
  else if (date == 21) printholiday = "Independence Day (Belgien)";
}

// August
else if (month == 7) {
  if (date == 1) printholiday = "Confederation Day (Switzerland)";
  else if (date == 15) printholiday = "Independence Day (Indien)";
}

// September
else if (month == 8) {
  if ((day== 1)&& (date > 0) && (date< 8)) printholiday = "Labor Day (USA)";
  else if (date == 23) printholiday = "Herbstanfang";
}

// October
else if (month == 9) {
  if (date == 3) printholiday = "Tag der Deutschen Einheit";
  else if ((day == 1) && (date > 7) && (date< 16)) printholiday = "Columbus Day (USA)";
  else if ((day == 0) && (date > 24) && (date< 31)) printholiday = "Ende der Sommerzeit";
  else if (date == 26) printholiday = "National-Feiertag (A)";
  else if (date == 31) printholiday = "Reformationstag / Halloween";
}

// November
else if (month == 10) {
  if (date == 1) printholiday = "Allerheiligen";
  else if (date == 19) printholiday = "Buß- und Bettag";
  else if ((date == 30) && (day == 4)) printholiday = "Erntedankfest";
}

// December
else if (month == 11) {
  if (date == 10) printholiday = "Tag der Menschenrechte";
  else if ((day == 0) && (date > 3) && (date< 9)) printholiday = "2. Advent";
  else if ((day == 0) && (date > 10) && (date< 16)) printholiday = "3. Advent";
  else if ((day == 0) && (date > 17) && (date< 23)) printholiday = "4. Advent";
  else if (date == 21) printholiday = "Winter-Anfang";
  else if (date == 24) printholiday = "Heiligabend";
  else if (date == 25) printholiday = "1. Weihnachts-Feiertag";
  else if (date == 26) printholiday = "2. Weihnachts-Feiertag";
  else if (date == 31) printholiday = "Silvester";
}

// Print the resulting date/holiday string
document.write(dayname[day] + ", " + date + ". " + monthname[month] + " " + year + "<BR><font color=FF0000>" + printholiday + "</font>");

