//  【以下のJavaScriptをカレンダーを表示したい部分に貼り付けます】

<script type="text/JavaScript" >
  <!--

//  【このJavaScriptをカレンダーを表示したい部分に貼り付けます】
// -------------------------- 各月カレンダー表示 ------------------------------
  WeekTd = new Array('日','月','火','水','木','金','土');                  // 表示曜日セット
  mmdd = new Array(31,28,31,30,31,30,31,31,30,31,30,31);                   // 毎月の日数セット
  dd = new Date();                                                         // 今日を読込む
  mm = new Date().getMonth();
  yy = new Date().getFullYear();
  tdfont  =" style='font-size:8pt; padding:2px 0px 0px 2px;'";            // セル内文字サイズ設定/位置調整
  tdsfont =" style='cursor:pointer; font-size:8pt; padding-top:3px;'";    // セットセル内文字サイズ設定
  tdmfont =" style='font-size:10pt; font-weight:bold; padding-top:2px;'"; // 年月表示文字サイズ設定
  tdwstyle=" align=center width=13'" + tdfont ;                           // 週表示枠の設定
  txtLN = "<table border=0 cellspacing=0 bgcolor=#99ffaa>";
// ---------------------------------見出しを記述----------------------------------
  txtLN += "  <tr><td align=center"+ tdsfont +" bgcolor=#a9e066 onclick='ForeY()' title='前年を表示'>≪</td>";
  txtLN += "    <td align=center"+ tdsfont +" bgcolor=#b0ed76 onclick='ForeM()' title='前月を表示'><</td>";
  txtLN += "    <td align=center "+ tdmfont +" ID='midasi' bgcolor='#e0fd99'></td>";           // 年月表示枠
  txtLN += "    <td align=center"+ tdsfont +" bgcolor=#b0ed76 onclick='NextM()' title='次月を表示'>></td>";
  txtLN += "    <td align=center"+ tdsfont +" bgcolor=#a9e066 onclick='NextY()' title='次年を表示'>≫</td>";
  txtLN += "  </tr><tr><td colspan=5>";
// -------------------------------曜日見出しを記述--------------------------------
  txtLN += "      <table border=0 cellspacing=1 cellpadding=2 width=100%><tr>";
  txtLN += "          <td bgcolor='#ff99dd' "+ tdwstyle +">"+WeekTd[0]+"</td>"; // 日曜日背景
for(i=1;i<6;i++){
  txtLN += "          <td bgcolor='#ddddee' "+ tdwstyle +">"+WeekTd[i]+"</td>"; // 月〜金曜日
}
  txtLN += "          <td bgcolor='#66ddff' "+ tdwstyle +">"+WeekTd[6]+"</td>"; // 土曜日背景
for(i=0;i<42;i++){
  if(!(i%7)) txtLN += "</tr><tr>";
    txtLN += "          <td "+ tdfont +" ID='DayTd"+i+"'> </td>";
}
  txtLN += "  </tr></table></td></tr></table>";
  document.write( txtLN );                                               // カレンダー枠表示
  ClndMV();                                                              // カレンダー日にちの表示
// -------------------------日にちの表示-------------------------
function ClndMV(){                                                       // 日にちの表示
  if ((!(yy%4) && yy%100) || !(yy%400)){mmdd[1] = 29;}else{mmdd[1] =28;} // 閏年処理
  dd.setDate(1);
  fWeek = dd.getDay()-1;                                                 // 初日の曜日の取得-1
  setday=0;                                                              // 表示日値の初期値セット
  Mm=(mm<9)?"0"+(mm+1):mm+1;                                             // 月表示2桁化
  MM=mm+1;                                                               // 実際の表示月
  if(document.all){ document.all("midasi").innerText =yy+"/"+Mm;         // IE4等対応
  }else{document.getElementById("midasi").innerHTML =yy+"/"+Mm;}         // 一般の場合の対応
  for(i=0;i<42;i++){
    set_day=(i>fWeek && i<=(mmdd[mm]+fWeek))?++setday:"&nbsp;";               // 初日以降終日以前のセット
    Dayobj=(document.all)?document.all("DayTd"+i):document.getElementById("DayTd"+i);
    Dayobj.innerHTML =set_day;                                           // 日にちset_dayの表示設定
    if(set_day<10) { Dayobj.innerHTML =" "+set_day; }               // 
    Dayobj.style.backgroundColor="#eeeeee";                              // 日の背景色の初期化
    Dayobj.title="";                                                     // 日のtitleの初期化
    Dayobj.style.color="#000000";                                        // 日の文字色の初期化
    if(!(i%7))Dayobj.style.color="red";                                  // 日曜 i=0 の文字色
    if(i%7==6)Dayobj.style.color="blue";                                 // 土曜 i=6 の文字色
// -----------------------------------休日の表示処理-------------------------------
    if(parseInt(set_day)){                                               // 表示日値がある場合の処理
      if( HolidCK(yy+"/"+MM+"/"+setday)) {                               // 休日の処理
        Dayobj.style.backgroundColor="#ffccff";                          // 休日の背景色
        Dayobj.style.color="#ff0000";                                    // 休日の文字色
        Dayobj.title=HolidCK(yy+"/"+MM+"/"+setday);                      // 休日のtitle表示設定
      }
      if(setday==new Date().getDate() && yy==new Date().getFullYear() && mm==new Date().getMonth()){
        Dayobj.style.backgroundColor="#aaffaa";                          // 当日の背景色#99ff99
        Dayobj.title="本日";                                             // 当日のtitle表示設定
      }
    }
  }
}
function NextY(){                              //  次の年を表示
  yy++;
  dd.setFullYear(yy);
  ClndMV();
}
function NextM(){                              //  次の月を表示
  if(mm==11){yy++;mm=0;}else{mm++;}            // 年越し処置
  dd.setFullYear(yy); dd.setMonth(mm);
  ClndMV();
}
function ForeM(){                              //  前月を表示
  if(mm==0){yy--;mm=11;}else{mm--;}            // 越年処置
  dd.setFullYear(yy); dd.setMonth(mm);
  ClndMV();
}
function ForeY(){                              //  前年を表示
  yy--;
  dd.setFullYear(yy);
  ClndMV();
}
// ------------------------- 休日のチェック -------------------------------
function HolidCK(ckDay) {                                                       // ckDay = yy/mm/dd
    Dsprit = ckDay.split("/");
    ya = Dsprit[0]-0; ma = Dsprit[1]-0; da = Dsprit[2]-0;                       // 文字→数字  変換
    switch (ma) {    // 1-12月毎に切替て条件設定します
      case 1:
        if (da==1){ ds = "元日";
        } else if ( da==1+1 && new Date(ya,1-1,1).getDay()==0) { ds = "振替休日";
        } else if ( ya>= 2000 && da == 14-new Date(ya,1-1,-1).getDay() ){ ds = "成人の日";
        } else if ( ya< 2000 && da == 15 ){ ds = "成人の日";
        } else { ds = "" }
      break;
      case 2:
        if (da==11){ ds = "建国記念の日";
        } else if ( da == 11+1 && new Date(ya,2-1,11).getDay() == 0 ){ ds = "振替休日";
        } else if ( ya>= 2020 && da == 23 ){ ds = "天皇誕生日";
        } else if ( ya>= 2020 && da == 23+1 && new Date(ya,2-1,23).getDay()==0 ){ ds= "振替休日";
        } else { ds = "" }
      break;
      case 3:
        d3 = Math.floor(20.8431+0.242194*(ya-1980)-Math.floor((ya-1980)/4));    // 春分の日の計算
        if ( da == d3 ){ ds = "春分の日";
        } else if ( da == d3+1 && new Date(ya,3-1,d3).getDay() == 0 ){ ds = "振替休日";
        } else { ds = "" }
      break;
      case 4:
        if ( ya== 2019 ){ if ( da== 29 ){ ds = "昭和の日"
            } else if ( da== 30 ){ds = "休日" } else { ds = "" }
        } else if ( da == 29 ){ if ( ya >= 2007 ) {ds = "昭和の日" } else {ds = "みどりの日" }
        } else if ( da == 29+1 && new Date(ya,4-1,29).getDay() == 0 ){ ds = "振替休日";
        } else { ds = "" }
      break;
      case 5:
        if( ya== 2019 && da== 1 ){ ds= "天皇の即位の日"
        } else if( ya== 2019 && da == 2 ){ ds= "休日"
        } else if ( da == 3 ){ ds = "憲法記念日" ;
        } else if ( da == 4 ) { if ( ya >= 2007 ) {ds = "みどりの日" } else {ds = "国民の休日" };
        } else if ( da == 5 ){ ds = "こどもの日";
        } else if ( da == 5+1 && new Date(ya,5-1,5).getDay() <= 2 ) {ds = "振替休日" ;
        } else { ds = "" }
      break;
      case 6:
        ds = "";
      break;
      case 7:
        if( ya== 2020 ) { if( da== 23 ){ ds= "海の日"; 
            } else if( da== 24 ){ ds= "スポーツの日"; } else { ds = "" }
        } else if ( ya>= 2003 && da == 21-new Date(ya,7-1,-1).getDay() ){ ds = "海の日" ;
        } else { ds = "" }
      break;
      case 8:
        if ( ya== 2020 ) { if ( da == 10 ){ ds = "山の日"; } else { ds = "" }
        } else if ( da == 11 ){ if ( ya >= 2016 ) {ds = "山の日" } 
        } else if ( da == 11+1 && new Date(ya,8-1,11).getDay() == 0 ){ ds = "振替休日";
        } else { ds = "" }
      break;
      case 9:  // 注 第3月曜日/敬老の日(15〜21) 秋分の日(22〜24)
        d99= 21-new Date(ya,9-1,-1).getDay();                                // 第3月曜日
        d9 = Math.floor(23.2488+0.242194*(ya-1980)-Math.floor((ya-1980)/4)); // 秋分の日の計算
        if ( ya>= 2003 && da == d99){ ds = "敬老の日" ;
        } else if ( ya< 2003 && da == 15 ){ ds = "敬老の日" ;
        } else if ( da == d9 ){ ds = "秋分の日" ;
        } else if ( da == d9+1 && new Date(ya,9-1,d9).getDay() == 0 ){ ds = "振替休日";
        } else if ( da == d99+1 && d9 == d99+2 ){ ds = "休日";   // 敬老の日と秋分の日に挟まれた日
        } else { ds = "" }
      break;
      case 10:
        if ( ya== 2019 && da==22 ) { ds= "休日";
        } else if ( ya> 2020 && da== 14-new Date(ya,10-1,-1).getDay() ){ ds= "スポーツの日"; // 第2月曜日
        } else if( ya< 2020 && ya>= 2000 && da== 14-new Date(ya,10-1,-1).getDay() ){ ds= "体育の日";// 第2月曜日
        } else if( da == 10 && ya<2000 ){ ds = "体育の日" ;
        } else { ds = "" }
      break;
      case 11:
        if ( da == 3 ){ ds = "文化の日" ;
        } else if ( da == 3+1 && new Date(ya,11-1,3).getDay() == 0 ){ ds = "振替休日";
        } else if ( da == 23 ){ ds = "勤労感謝の日" ;
        } else if ( da == 23+1 && new Date(ya,11-1,23).getDay() == 0 ){ ds = "振替休日";
        } else { ds = "" }
      break;
      case 12:
        if ( ya< 2019 && ya>= 1989 && da == 23){ ds = "天皇誕生日" ;
        } else if ( ya< 2019 && ya>= 1989 && da == 23+1 && new Date(ya,12-1,23).getDay() == 0 ){ ds = "振替休日";
        } else { ds = "" }
      break;
    }
    return ds ;
}
  // -->
</script >