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","#ffffff","#ffffff","#ffffff","#ffffff","#ffffff","#ffffff","#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(""); write("
"+theYear+"年"+theMonth+"月
"); write(""); for(i=0;i<7;i++) write(""); // 曜日書き出し 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(""); if (day % 7 == 6) write(""); // 土曜の場合改行 } else{ write(""); if (day % 7 == 6) write(""); } day++; // 1日増やす } write("
"+theYear+"年"+theMonth+"月
",wrtDate[i],"
"+wrt+"
"+wrt+"
"); } }