day = new Date();
kyou = day.getDate(); //今日の日にちを取得
var week = new Array("<font color=#ff0000>(日)</font>","(月)","(火)","(水)","(木)","(金)","<font color=#0000e8>(土)</font>");
pr_youbi = day.getDay();
wday = week[pr_youbi];

var gyouji = new Array("元旦","成人の日","節分(3日)","建国記念日","雛祭り(3日)","春分の日","みどりの日","憲法記念日","国民の休日","こどもの日","米独立記念日(4日)","七夕(7日)","海の日","敬老の日","秋分の日","体育の日","文化の日","勤労感謝の日","天皇誕生日","クリスマスイヴ(24)","大晦日(31)","","","","")

day.setDate(1); //最初の日にち（１日）にセット
month = day.getMonth() + 1; //月を取得
year = day.getFullYear();　　　　//年を取得
// カレンダー本体
tukidays = new Array(31,28,31,30,31,30,31,31,30,31,30,31); //

function calendar(){

// 祝祭日の計算
if(month == 1){holiday1 = 1; holiday2 = 14-(day.getDay()+5)%7; holiday3 = -1} //成人の日
else if(month == 2){holiday1 = 11; holiday2 = -1; holiday3 = -1}
else if(month == 3){
ed = 20.8431 + 0.242194 * (year - 1980) - Math.floor((year - 1980)/4); //春分の日


holiday1 = Math.floor(ed);
holiday2 = -1;
holiday3 = -1;
}
else if(month == 4){holiday1 = 29; holiday2 = -1; holiday3 = -1}
else if(month == 5){holiday1 = 3; holiday2 = 4; holiday3 = 5}
else if(month == 6){holiday1 = -1; holiday2 = -1; holiday3 = -1}
else if(month == 7){holiday1 = 21-(day.getDay()+5)%7; holiday2 = -1; holiday3 = -1}
else if(month == 8){holiday1 = -1; holiday2 = -1; holiday3 = -1}
else if(month == 9){
holiday1 = 21-(day.getDay()+5)%7; holiday2 = -1; holiday3 = -1;//敬老の日
ed = 23.2488 + 0.242194 * (year - 1980) - Math.floor((year - 1980)/4); //秋分の日
holiday2 = Math.floor(ed);
holiday3 = -1
}
else if(month == 10){holiday1 = 14-(day.getDay()+5)%7; holiday2 = -1; holiday3 = -1} //体育の日
else if(month == 11){holiday1 = 3; holiday2 = 23; holiday3 = -1}
else if(month == 12){holiday1 = 23; holiday2 = -1; holiday3 = -1}

// 閏年の計算
if((year%4 == 0) && (year%100 != 0) || (year%400 == 0)) tukidays[1] = 29;

pr_day = "";
pr_day += "<table border=0 cellspcing=1 cellpadding=1 bgcolor=#adad5a style='font-size:11pt'>";//テーブル・文字サイズ
pr_day += "<tr align=center bgcolor=#adad5a><th colspan=7><font color=\"#ffffff\">"+year+"年"+month+"月</font></th></tr>";
pr_day += "<tr align=center><th><font color=\"#ff0000\">日</font></th><th><font color=\"#ffffff\">月</font></th><th><font color=\"#ffffff\">火</font></th><th><font color=\"#ffffff\">水</font></th><th><font color=\"#ffffff\">木</font></th><th><font color=\"#ffffff\">金</font></th><th><font color=\"#0000e8\">土</font></th></tr>";


// 日付の書き込み
for(sunday = 1-day.getDay(); sunday <= 31; sunday +=7){
pr_day += "<TR align=center>";
for(i = sunday; i < sunday + 7; i++){
if((i > 0) && (i <= tukidays[month-1])){
day.setDate(i);
today = day.getDay();

if(kyou == i) pr_day += "<td bgcolor='#666666'>"; 
else pr_day += "<td>";

if(today == 0){
pr_day += "<font color=\"#ff0000\">"+ i +"</font></td>";
}else if((i == holiday1)||(i == holiday2)||(i == holiday3)){
pr_day += "<font color=\"#ff0000\">"+ i +"</font></td>";
}else if((today == 1)&&((i-1 == holiday1)||(i-1 == holiday2)||(i-1 == holiday3))){
pr_day += "<font color=\"#ff0000\">"+ i +"</font></td>";
}else if(today == 6){
pr_day += "<font color=\"#0000ff\">"+ i +"</font></TD>";
}else{
pr_day += "<font color=\"#ffffff\">"+ i +"</font></td>";//日付の色
}

}else{
pr_day += "<td></td>";
}
}
pr_day += "</TR>";
}
if (month==1){spday=gyouji[0]+"["+holiday1+"日]/"+gyouji[1]+"["+holiday2+"日]<br>"}
if (month==2){spday=gyouji[2]+"/"+gyouji[3]+"["+holiday1+"日]<br>"}
if (month==3){spday=gyouji[4]+"/"+gyouji[5]+"["+holiday1+"日]<br>"}
if (month==4){spday=gyouji[6]+"["+holiday1+"日]<br>"}
if (month==5){spday=gyouji[7]+"["+holiday1+"日]/"+gyouji[9]+"["+holiday3+"日]<br>"+gyouji[8]+"["+holiday2+"日]<br>"}
if (month==6){spday=""}
if (month==7){spday=gyouji[10]+"/"+gyouji[11]+"<br>"+gyouji[12]+"["+holiday1+"日]"}
if (month==8){spday=""}
if (month==9){spday=gyouji[13]+"["+holiday1+"日]/"+gyouji[14]+"["+holiday2+"日]<br>"}
if (month==10){spday=gyouji[15]+"["+holiday1+"日]<br>"}
if (month==11){spday=gyouji[16]+"["+holiday1+"日]/"+gyouji[17]+"["+holiday2+"日]<br>"}
if (month==12){spday=gyouji[18]+"["+holiday1+"日]/"+gyouji[20]+"<br>"+gyouji[19]+"<br>"}

if ((kyou==holiday1)||(kyou==holiday2)||(kyou==holiday3)||(pr_youbi==0)){
pr_day += "<tr align=center bgcolor=#adad5a><th colspan=7>"+month+"月<font color=#ff0000>"+kyou+"</font>日"+wday+"</th></tr>";
}else{
pr_day += "<tr align=center bgcolor=#adad5a><th colspan=7><font color=#393939>"+month+"月"+kyou+"日"+wday+"</font></th></tr>";
}

pr_day += "<tr><td colspan=7><small><font color=#ffffff>"+spday+"</font>";
pr_day += "</TABLE>";

document.write(pr_day);
}
