function theCalendar(theYear,theMonth)
{
var wrtMonth= new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
var wrtDate = new Array("日","月","火","水","木","金","土");
var wrtColor= new Array("#FF0000","#9a9a9a","#9a9a9a","#9a9a9a","#9a9a9a","#9a9a9a","#0000FF","#00FFFF");
var special = new Array(3,21, 9,23, 1,1, 1,15, 2,11, 4,29, 5,3, 5,4, 5,5, 7,20, 9,15, 10,10, 11,3, 11,23, 12,23);
var specCol = "#FF0000"; // 休日の文字色
var theDate = new Date(); // 日付オブジェクトを生成
var theCurrentMonth = theDate.getMonth()+1; // 現在の月を取得
if (theYear >= 0) // 年月が指定されていた場合は年月を再設定
{
theDate.setYear(theYear); // 指定年を取得
theDate.setMonth(theMonth-1); // 指定月を取得
}
theYear = theDate.getYear();
theMonth= theDate.getMonth()+1;
theDay= theDate.getDate(); // 今日の日付
if (theYear < 2000) theYear += 1900; // getFullYear()という手もある
if (((theYear % 4 == 0) && (theYear % 100 != 0)) || (theYear % 400 == 0))
{
wrtMonth[2]++; // 2月を29日にする
special[1]++; // 春分の日をずらす
special[3]++; // 秋分の日をずらす
}
theDate.setDate(1); // 日付を1日にし曜日を次の行で取得
var count = theDate.getDay();
var day = 0; // 曜日カウンタを0にする
var date = 1; // 日付を1日にする
var flag = false; // 休日&日曜日フラグ
var hFlag = false; // 休日フラグ
var i,j;
with(document)
{
// write("
| "+theYear+"年"+theMonth+"月 |
");
write("| "+theYear+"年"+theMonth+"月 |
");
write("");
for(i=0;i<7;i++) write("| ",wrtDate[i]," | "); // 曜日書き出し
write("
");
flag = false; // 休日が日曜日だった場合true
for(i=1;i<=wrtMonth[theMonth]+count;i++)
{
hFlag = false; // 休日だったらtrue
if (day>=count)
{
wrt = ""+date;
for(j=0; j<15; j++)
{
if ((special[j*2] == theMonth) && (special[j*2+1] == date))
{
wrt = wrt.fontcolor(specCol);
if ((day % 7) == 0) flag = true; // 休日が日曜日だったらtrue
hFlag = true;
}
}
date++;
}else{
wrt = " ";
}
if ((hFlag == false) && flag == false) wrt = wrt.fontcolor(wrtColor[day % 7]); // 休日以外カラー
if (((day % 7) == 1) && flag == true) { wrt = wrt.fontcolor(specCol); flag = false;}
if (date==theDay+1){
write(""+wrt+" | ");
if (day % 7 == 6) write(""); // 土曜の場合改行
}
else{
write("| "+wrt+" | ");
if (day % 7 == 6) write("
"); // 土曜の場合改行
}
day++; // 1日増やす
}
write("
");
}
}