// 【以下のJavaScriptをカレンダーを表示したい部分に貼り付けます】
<script type="text/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=' padding:2px 0px 0px 2px; border:1px #6da solid; width:13px;background:#fff;'"; // セル内文字サイズ設定/位置調整
tdwstyle=" padding:2px 0px 0px 2px; border:1px #6da solid; width:13px;background:#fff; color:#000; ";
tdwstyle1=" style=' padding:2px 0px 0px 2px; border:1px #6da solid; width:13px;background:#fff;color:#d00;'"; // 日曜日の文字色設定
tdwstyle2=" style=' padding:2px 0px 0px 2px; border:1px #6da solid; width:13px;background:#fff;'"; // 月〜金曜日の背景色設定
tdwstyle3=" style=' padding:2px 0px 0px 2px; border:1px #6da solid; width:13px;color:#00d;'"; // 土曜日の文字色設定
document.writeln("<div style='width:133px; margin:0 auto; text-align:center;'><section style='display:flex; justify-content:space-between; background:#9d9; font-size:14px; padding-top:2px; text-align:center; font-weight:bold;'><span style='cursor:cell;' onclick='ForeY()' title='前年を表示'>≪</span><span style='cursor:pointer;' onclick='ForeM()' title='前月を表示'><</span><span ID='midasi' style='padding:2px 5px; background:#ce9; font-size:13px;'>2020/08</span><span style='cursor:pointer;' onclick='NextM()' title='次月を表示'>></span><span style='cursor:cell;' onclick='NextY()' title='次年を表示'>≫</span></section><div id='matrix2' style='font-size:8pt;'></div></div>");
dbox();
// -------------------------日にちの表示-------------------------
function dbox(){ // 日にち月表の表示
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;} // 一般の場合の対応
// カレンダー日にち月枠の表示
txtLN = " <table style='width:133px; border:1px #999 solid; border-collapse:collapse; text-align:center; font-weight:normal; font-size:12px;'><tr>";
// 曜日行の表示
txtLN += " <td "+ tdwstyle1 +">"+WeekTd[0]+"</td>"; // 日曜日背景
for(i=1;i<6;i++){
txtLN += " <td "+ tdwstyle2 +">"+WeekTd[i]+"</td>"; // 月〜金曜日
}
txtLN += " <td "+ tdwstyle3 +">"+WeekTd[6]+"</td></tr><tr>"; // 土曜日背景
m_day = mmdd[ mm ]; // 各月の日数
w_day = new Date(yy, mm, 1 ).getDay(); // 1日の曜日を取得
for(i=1;i<= w_day;i++){ // 1日の曜日の数だけ空白を表示
txtLN += " <td "+ tdfont +" > </td>";
}
// -------------------------日付月表の表示 -------------------------
for(i=1;i<= m_day;i++){ // 1日から月末日までの表示
w_day = new Date(yy, mm, i ).getDay();
s_day = HolidCK(yy+"/"+MM+"/"+ i); // 祝日の確認
if( i==new Date().getDate() && yy==new Date().getFullYear() && mm==new Date().getMonth()){
tdwstyle = ( !s_day )?'padding:2px 0px 0px 2px; border:1px #6da solid; width:13px; color:#222;background:#afa;' : 'padding:2px 0px 0px 2px; border:1px #6da solid; width:13px; color:#222;background:#afa; color:#d00;'; // 本日の背景色(・色)
tdwtitle = ( !s_day )?" title = '本日'":" title = '" + s_day + "'"; // 本日のtitle表示設定
} else if( s_day ){
tdwstyle += ' background:#fcf; color:#d00;'; // 祝日の背景色,色
tdwtitle =" title = '" + s_day + "'"; // 祝日のtitle表示設定
} else { tdwstyle = "padding:2px 0px 0px 2px; border:1px #6da solid; width:13px;background:#fff; color:#000;"; tdwtitle =""; }
if( w_day == 6 ){ // 土曜日の処理
tdwstyle += 'color:#00d;'
txtLN += " <td" + tdwtitle +" style ='"+ tdwstyle + "'>" + i + "</td>";
txtLN += "</tr><tr>";
} else if( w_day == 0 ){ // 日曜日の処理
tdwstyle += 'color:#d00;'
txtLN += " <td" + tdwtitle +" style ='"+ tdwstyle + "'>" + i + "</td>";
} else { // 平日の処理
tdwstyle += ''
txtLN += " <td" + tdwtitle +" style ='"+ tdwstyle + "'>" + i + "</td>";
}
}
w_day = new Date(yy, mm+1, 0 ).getDay(); // 最後の週の土曜日まで移動
for(i=1;i< 7 - w_day;i++){
txtLN += " <td "+ tdfont +" > </td>";
}
txtLN += " </tr></table>";
document.getElementById("midasi").innerHTML =yy+"/"+Mm; // 年月の表示
document.getElementById("matrix2").innerHTML =txtLN; // 当月表の表示
}; // dbox() -----------------
// 表示月の変更 ================================================
function NextY(){ // 次の年を表示
yy++;
dd.setFullYear(yy);
dbox();
}; // -----------------
function NextM(){ // 次の月を表示
if(mm==11){yy++;mm=0;}else{mm++;} // 年越し処置
dd.setFullYear(yy); dd.setMonth(mm);
document.getElementById("midasi").innerHTML =yy+"/"+Mm;
dbox();
}; // -----------------
function ForeM(){ // 前月を表示
if(mm==0){yy--;mm=11;}else{mm--;} // 越年処置
dd.setFullYear(yy); dd.setMonth(mm);
dbox();
}; // -----------------
function ForeY(){ // 前年を表示
yy--;
dd.setFullYear(yy);
dbox();
}; // -----------------
// ------------------------- 祝日のチェック --------------------------
function HolidCK(ckDay) { // ckDay = yyyy/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 && ya>= 2020 ){ 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 && ya >= 2007 ){ 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 && ya >= 2007 ) {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== 2021 ) { if( da== 22 ){ ds= "海の日";
} else if( da== 23 ){ 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 ( ya== 2021 ) { if ( da == 8 ){ ds = "山の日"; } else if ( da == 9 ){ ds = "振替休日"; } else { ds = "" }
} else if ( da == 10+1 ){ if ( ya >= 2016 ) {ds = "山の日" }
} else if ( da == 11+1 && new Date(ya,8-1,11).getDay() == 0 && ya >= 2016 ){ 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 && ya>= 2003 ){ ds = "振替休日";
} else if ( da == d99+1 && d9 == d99+2 ){ ds = "休日"; // 敬老の日と秋分の日に挟まれた日
} else { ds = "" }
break;
case 10:
if ( ya== 2019 && da==22 ) { ds= "休日 即位礼正殿の儀";
} else if ( ya== 2021 && da==11 ) { 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 ;
}; // HolidCK(ckDay) --------------------------
</script>