﻿/*
 Java Script Calendar is a small script for web pages which displays current Day of the week, Month, Date and Year along with Holidays notification. Just like this working demo below. It will work with Netscape 2++, Microsoft 3++ and Opera 3++ web browsers.

                                    Tuesday, November 24, 1998    

About 70 holidays from all over the world are displayed by Calendar (if you know other ones, let me know, I will add them). It even calculates Easter Sunday date! To see how it works change the date on your computer to January, 1,
for example and re-load the page.

Installation is very simple. Just copy the script below, everything between SCRIPT and SCRIPT tags (including tags themselves) and paste in the place you want it to appear on your page. You can customize the way
 it looks by changing document.write function arguments just after month names definitions. Java Script Calendar is free without any limitations. Copyright © Eugene Vassiltsov. But please, let me know if you will use it.
*/
function getDateWithHoliday()
{
    str2return="";
    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 ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
    var monthname = 
    new Array ("January","February","March","April","May","June","July","August","September","October","November","December" );
    str2return="";
    str2return+=dayname[day] + ", ";
    str2return+=monthname[month] + " ";
    if (date< 10) str2return+="0" + date + ", ";
    else str2return+=date + ", ";
    str2return+=year + "    ";
    // Easter
    if ((month == emonth) && (date == edate)) str2return+="Easter Sunday (Western)";
    // January
    if ((month == 0) && (date == 1)) str2return+="New Year's Day";
    if ((month == 0) && (date == 15)) str2return+="Adults Day (Japan)";
    if ((month == 0) && (date == 27)) str2return+="Wolfgang Amadeus Mozart born (1756)";
    if ((month == 0) && (day == 1) && (date > 14) && (date< 22)) str2return+="Martin Luther King's Birthday";
    // February
    if ((month == 1) && (date == 2)) str2return+="Groundhog Day";
    if ((month == 1) && (date == 8)) str2return+="Jules Verne born (1828)";
    if ((month == 1) && (date == 11)) str2return+="National Foundation Day (Japan)";
    if ((month == 1) && (date == 12)) str2return+="Abraham Lincoln's Birthday (USA)";
    if ((month == 1) && (date == 14)) str2return+="St. Valentine's Day";
    if ((month == 1) && (date == 15)) str2return+="Galileo Galilei born (1564)";
    if ((month == 1) && (date == 22)) str2return+="George Washington's Birthday (USA)";
    if ((month == 1) && (date == 29)) str2return+="Leap Day";
    // March
    if ((month == 2) && (date == 3)) str2return+="Girl's Day (Japan)";
    if ((month == 2) && (date == 17)) str2return+="St. Patrick's Day";
    if ((month == 2) && (date == 21)) str2return+="J.S. Bach born (1685)";
    // April
    if ((month == 3) && (date == 1)) str2return+="April Fools' Day";
    if ((month == 3) && (date == 8)) str2return+="Buddha born";
    //if ((month == 3) && (date == 15) && (day != 0)) str2return+="Income Tax Day (USA),   ";
    //if ((month == 3) && (date == 16) && (day == 1)) str2return+="Income Tax Day (USA) ";
    if ((month == 3) && (date == 15)) str2return+="Leonardo da Vinci born (1452)";
    if ((month == 3) && (date == 22)) str2return+="Earth Day";
    if ((month == 3) && (date == 29)) str2return+="Emperor's Birthday (Japan)";
    //if ((month == 3) && (day == 0) && (date > 0) && (date< 8)) str2return+="Daylight Savings Time Begins";
    // May
    if ((month == 4) && (date == 1)) str2return+="May Day, Boy's Day (Japan)";
    if ((month == 4) && (date == 2)) str2return+="Constitution Day (Japan)";
    if ((month == 4) && (date == 5)) str2return+="Cinco de Mayo (Mexico), Children's Day (Japan)";
    if ((month == 4) && (date == 14)) str2return+="Independence Day (Paraguay)";
    if ((month == 4) && (day == 0) && (date > 7) && (date< 16)) str2return+="Mother's Day";
    if ((month == 4) && (day == 1) && (date > 24)) str2return+="Memorial Day (USA)";
    if ((month == 4) && (day == 0) && (date > 23)) str2return+="Memorial Day Weekend (USA)";
    if ((month == 4) && (day == 6) && (date > 22)) str2return+="Memorial Day Weekend (USA)";
    if ((month == 4) && (day == 5) && (date > 21)) str2return+="Memorial Day Weekend Eve (USA)";
    // June
    if ((month == 5) && (date == 5)) str2return+="Constitution Day (Denmark)";
    //if ((month == 5) && (date == 6)) str2return+="Anniversary of D-Day (USA)";
    if ((month == 5) && (date == 11)) str2return+="Kamehameha (Hawaii)";
    //if ((month == 5) && (date == 14)) str2return+="Flag Day (USA)";
    if ((month == 5) && (date == 21)) str2return+="Summer Solstice";
    if ((month == 5) && (date == 24)) str2return+="St. Jean Baptiste Day (Canada)";
    if ((month == 5) && (date == 30)) str2return+="Independence Day (Zaire)";
    if ((month == 5) && (day == 0) && (date > 15) && (date< 24)) str2return+="Father's Day";
    // July
    if ((month == 6) && (date == 1)) str2return+="Independence Day (Canada)";
    if ((month == 6) && (date == 4)) str2return+="Independence Day (USA)";
    if ((month == 6) && (date == 14)) str2return+="Bastille Day (France)";
    // August
    if ((month == 7) && (date == 1)) str2return+="Confederation Day (Switzerland)";
    if ((month == 7) && (date == 10)) str2return+="Independence Day (Ecuador)";
    if ((month == 7) && (date == 15)) str2return+="Independence Day (India)";
    // September
    if ((month == 8) && (date == 7)) str2return+="Independence Day (Brazil)";
    if ((month == 8) && (date == 15)) str2return+="Respect for the Aged Day (Japan)";
    if ((month == 8) && (date == 16)) str2return+="Independence Day (Mexico)";
    if ((month == 8) && (day== 1) && (date > 0) && (date< 8)) str2return+="Labor Day (USA)";
    if (((month == 8) && (day== 0) && (date > 0) && (date< 7)) || ((month == 7) && (day== 0) && (date  > 30))) str2return+="Labor Day Weekend (USA)";
    if (((month == 8) && (day== 6) && (date > 0) && (date< 6)) || ((month == 7) && (day== 6) && (date  > 29))) str2return+="Labor Day Weekend (USA)";
    if (((month == 8) && (day== 5) && (date > 0) && (date< 5)) || ((month == 7) && (day== 5) && (date  > 28))) str2return+="Labor Day Weekend Eve (USA)";
    // October
    if ((month == 9) && (date == 1)) str2return+="German Reunufication (1990)";
    if ((month == 9) && (date == 10)) str2return+="Health-Sports Day (Japan)";
    if ((month == 9) && (day == 1) && (date > 7) && (date< 16)) str2return+="Columbus Day (USA)";
    //if ((month == 9) && (day == 0) && (date > 24) && (date< 31)) str2return+="Daylight Savings Time Ends";
    //if ((month == 9) && (day == 0) && (date == 31)) str2return+="Daylight Savings Time Ends";
    if ((month == 9) && (date == 24)) str2return+="United Nations Day";
    if ((month == 9) && (date == 31)) str2return+="Happy Halloween!";
    // November
    //if ((month == 10) && (date == 1)) str2return+="All Saints Day";
    //if ((month == 10) && (date == 2)) str2return+="All Souls Day";
    if ((month == 10) && (date == 3)) str2return+="Culture Day (Japan)";
    if ((month == 10) && (date == 11)) str2return+="Veteran's Day (USA), Remembrance Day (Canada)";
    if ((month == 10) && (date == 20)) str2return+="Revolution Day (Mexico)";
    if ((month == 10) && (date == 23)) str2return+="Labor Thanksgiving Day (Japan)";
    if ((month == 10) && (day == 3) && (date > 22) && (date< 29)) str2return+="Thanksgiving Eve (USA)";
    if ((month == 10) && (day == 4) && (date > 23) && (date< 30)) str2return+="Thanksgiving (USA)";
    if ((month == 10) && (date == 30) && (day == 4)) str2return+="Thanksgiving (USA)";
    // December
    if ((month == 11) && (date == 10)) str2return+="Human Rights Day";
    if ((month == 11) && (date == 21)) str2return+="Winter Solstice";
    if ((month == 11) && (date == 24)) str2return+="Christmas Eve (Western)";
    if ((month == 11) && (date == 25)) str2return+="Christmas (Western)";
    if ((month == 11) && (date == 26)) str2return+="Boxing Day";
    if ((month == 11) && (date == 31)) str2return+="New Year's Eve";
    
    return str2return;
    
}
