function myCalendar( myTodayOffset ){
// ****************
// **   下準備   **
// ****************
 myDate  = new Date();                                      // 今日の日付データ取得
 myYear  = myDate.getFullYear();                            // 西暦取得
 myMonth = myDate.getMonth();                               // 月を取得(0月～11月)
 myMonth0 = myMonth;                                        // 祝祭日の月
 myNendo = 2012;                                            // 祝祭日のテーブル年度
 if (myNendo != myYear){
    alert("祝祭日のテーブル更新を実施して下さい。");        // テーブル更新していない場合メッセージ出力
 }
 if (myTodayOffset == -1){                                  // 先月のデータ表示か？
    if (myMonth == 0){                                      //   今月が1月なら12月へ
       myYear = myYear-1 ;                                  //   去年
       myMonth = 11;                                        //   先月（去年の12月)
       myMonth0 = -1;
    }else{
       myMonth--;                                           //   先月
       myMonth0 = myMonth;                                  //   祝祭日の月
    }
 }else if (myTodayOffset == 1){                             // 来月データ表示か？
    if (myMonth == 11){                                     //   今月が12月なら1月へ
       myYear = myYear+1 ;                                  //   来年
       myMonth = 0;                                         //   来月(来年の１月)
       myMonth0 = 12;
    }else{
       myMonth++;                                           //   来月
       myMonth0 = myMonth;                                  //   祝祭日の月
    }
 }
 if (myTodayOffset != 0){                                   // 今月じゃなかったら
   myDate.setDate(1)                                        // '日'を１日にして..
 } 
 myDate.setFullYear(myYear);                                // '年'を変更
 myDate.setMonth(myMonth);                                  // '月'を変更
 
 myWeekTbl = new Array("日","月","火","水","木","金","土"); // 曜日テーブル定義
 myMonthTbl= new Array(31,28,31,30,31,30,31,31,30,31,30,31);// 月テーブル定義
 holidays = new Array(0,23,0,31,1,2,1,3,1,4,1,9,1,12,2,11,3,8,3,20,4,12,4,30,5,3,5,4,5,5,5,10,6,14,7,18,9,19,9,23,10,10,11,3,11,23,12,23,12,31,13,1,13,2,13,3,13,4,13,8);// 来年1月:13月
 if (((myYear%4)==0 && (myYear%100)!=0) || (myYear%400)==0) // うるう年だったら...
    myMonthTbl[1] = 29;                                     // 　２月を２９日とする
 myToday = myDate.getDate();                                // 今日の'日'を退避
 myDate.setDate(1);                                         // 日付を'１日'に変えて、
 myWeek = myDate.getDay();                                  // 　'１日'の曜日を取得
 myTable   = new Array(7*6);                                // 表のセル数分定義
 myHoliday = new Array(31);                                 // 祝祭日のテーブル

 for(i=0; i<7*6; i++) myTable[i]="　";                      // myTableを掃除する
 for(i=0; i<32; i++) myHoliday[i]=0;                        // myHolidayを初期化
 for(i=0; i<myMonthTbl[myMonth]; i++)myTable[i+myWeek]=i+1; // 日付を埋め込む
 if(myWeek < 5) k = 1;                                      // 木曜日が１行目にある?
 else k = 0;

 for (i = 0; i < holidays.length; i += 2){
    if (holidays[i] == (myMonth0+1)) myHoliday[holidays[i+1]] = 1; // 祝祭日フラグON
 }

// ***********************
// **  カレンダーの表示  **
// ***********************
 document.write("<table border='1' cellspacing='0' width='180px' ");      // 表の作成開始
 document.write("bordercolor='#808080' ");
 document.write("bordercolordark='#000000' ");
 document.write("bordercolorlight='#C0C0C0'>");

 document.write("<tr><td align='center' colspan='7' bgcolor='#FFFFFF'>"); // 見出
 document.write("<strong>",myYear, "年", (myMonth+1), "月</strong>");
 document.write("</td></tr>");

 document.write("<tr>");                                    // 曜日見出しセット
 for(i=0; i<7; i++){                                        // 一行(１週間)ループ
   document.write("<td align='center' ");
   if(i==0)document.write("bgcolor='#fa8072'>");            // 日曜のセルの色
   else    document.write("bgcolor='#ffebcd'>");            // 月～土のセルの色
   document.write("<strong>",myWeekTbl[i],"</strong>");     // '日'から'土'の表示
   document.write("</td>");
 }
 document.write("</tr>");

 for(i=0; i<6; i++){                                        // 表の「行」のループ
   document.write("<tr>");                                  // 行の開始
   for(j=0; j<7; j++){                                      // 表の「列」のループ
      document.write("<td align='center' ");                // 列(セル)の作成
      myDat = myTable[j+(i*7)];                             // 書きこむ内容の取得
      if(myHoliday[myDat]==1)
               document.write("bgcolor='#ffb6c1'>");        // 祝祭日のセルの色
      else if(myDat==myToday && myTodayOffset==0)
               document.write("bgcolor='#00ffff'>");        // 今日のセルの色
      else if(j==0)
               document.write("bgcolor='#ffb6c1'>");        // 日曜のセルの色
      else
               document.write("bgcolor='#ffffe0'>");        // 平日のセルの色
      document.write("<strong>",myDat,"</strong>");         // 日付セット
      document.write("</td>");                              // 列(セル)の終わり
   }
   document.write("</tr>");                                 // 行の終わり
   k = k + 1;
 }
 document.write("</table>");                                // 表の終わり
}                                                           // function の終わり
// -->// JavaScript Document
