//------------------------ カレンダー表示 2007/10/08 -------------------------
// 前月、翌月を表示できるように修正
today = new Date() ; // 今日のデータ
var cal_yy = change_year(today.getYear()); // 年
var cal_mm = today.getMonth() + 1; // 月
var today_holiday = 0; // 当日が祝日の場合
function calendar_disp(){
document.write("
") ;
document.write(calendar(cal_yy , cal_mm))
document.write("
")
holiday_com(today_holiday)
}
//-- 前月、翌月の切り替え
function month_back_next(nn){
cal_mm = cal_mm + nn
qq=calendar(cal_yy , cal_mm)
cal_changeElementText("calendar", qq);
holiday_com(today_holiday)
}
//-- 年号を4桁で取得できない場合、4桁に変換
function change_year(qq){
if(qq < 2000){
qq = qq + 1900
}
return qq
}
//------------ カレンダーの表示 ---------------
//-- http://www004.upp.so-net.ne.jp/sekiuchi/js/contents/hcc3.html
function calendar(cal_yy , cal_mm){
var siz = "style='font-size:9pt;line-height:120%'"; // 表示サイズ
var youbi = new Array("日","月","火","水","木","金","土")
var css_calendar_waku = "border-width : 2px ; border-color : #ff9494 ; border-style : solid ;"
today_holiday = 0; // 当日が祝日の場合
var z_today = new Date()
var cal_yyy = change_year(z_today.getYear()); // 年
var cal_mmm = z_today.getMonth() + 1; // 月
var now_year = z_today.getYear();
if(now_year < 2000){ now_year += 1900;}
var now_month = z_today.getMonth() + 1;
var q1 = cal_yyy + "" + cal_mmm
var q2 = cal_yy + "" + cal_mm
if (q1 == q2){
day = new Date() // 今日のデータ
thisday = day.getDate(); // 今日の日付
firstday = new Date()
firstday.setDate(1)
var startday = firstday.getDay(); // 初日の曜日
}else{
day = new Date(cal_yy , cal_mm - 1 , 1); // 指定年月日のデータ
day.setDate(1); // 1日にセット
var startday = day.getDay(); // 初日の曜日
}
day.setDate(1); //今月最初の日にセット
month = day.getMonth() + 1;
year = change_year(day.getYear());
numdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
dd = new Array()
// うるう年
if((year%4 == 0) && (year%100 != 0) || (year%400 == 0)) numdays[1] = 29;
//---------- 休日の定義 ----------
hol_com1 = "" ; hol_com2="" ; hol_com3=""
if(month == 1){
holiday1 = 1; holiday2 = 14-(day.getDay()+5)%7; holiday3 = -1
hol_com1 = "元旦" ; hol_com2 = "成人の日"
}
else if(month == 2){
holiday1 = 11; holiday2 = -1; holiday3 = -1
hol_com1 = "建国記念の日"
}
else if(month == 3){
ed = 20.8431 + 0.242194 * (year - 1980) - Math.floor((year - 1980)/4);
holiday1 = Math.floor(ed);
holiday2 = -1;
holiday3 = -1;
hol_com1 = "春分の日"
}
else if(month == 4){
holiday1 = 29; holiday2 = -1; holiday3 = -1
hol_com1 = "昭和の日"
}
else if(month == 5){
holiday1 = 3; holiday2 = 4; holiday3 = 5
hol_com1 = "憲法記念日" ; hol_com2 = "みどりの日" ; hol_com3 = "こどもの日"
}
else if(month == 6){
holiday1 = -1; holiday2 = -1; holiday3 = -1
}
else if(month == 7){
holiday1 = 21-(day.getDay()+5)%7; holiday2 = -1;holiday3 = -1
hol_com1 = "海の日"
}
else if(month == 8){
holiday1 = -1; holiday2 = -1; holiday3 = -1
}
else if(month == 9){
holiday1 = 21-(day.getDay()+5)%7;
ed = 23.2488 + 0.242194 * (year - 1980) - Math.floor((year - 1980)/4);
holiday2 = Math.floor(ed);
holiday3 = -1
hol_com1 = "敬老の日" ; hol_com2 = "秋分の日"
}
else if(month == 10){
holiday1 = 14-(day.getDay()+5)%7;; holiday2 = -1; holiday3 = -1
hol_com1 = "体育の日"
}
else if(month == 11){
holiday1 = 3; holiday2 = 23; holiday3 = -1
hol_com1 = "文化の日" ; hol_com2 = "勤労感謝の日"
}
else if(month == 12){
holiday1 = 23; holiday2 = -1; holiday3 = -1
hol_com1 = "天皇誕生日"
}
if(holiday1 != -1){dd[holiday1] = hol_com1}
if(holiday2 != -1){dd[holiday2] = hol_com2}
if(holiday3 != -1){dd[holiday3] = hol_com3}
//---------- 休日の定義終わり ----------
//--- カレンダー本体
var tuki = month
if(month < 10){tuki = "0" + month}
var cc=""
cc +="";
cc +=""
cc +="";
//-- カレンダー本体の表示
cc +="";
cc +=""
cc +="";
cc +="";// height='23'>";
cc +=""
cc +="";
cc +=" | "
cc +="" + year + " 年 " + tuki + " 月" + " | ";
cc +=" | "
cc +=" "
cc +=""
cc +=" "
cc +=" | ";
cc +="";
for(ii=0 ; ii<7 ; ii++){
col="black"
if(ii == 0){col='red'}
if(ii == 6){col='blue'}
cc += ""
cc +=""
cc += youbi[ii]
cc +=""
cc +=" | ";
}
cc += " ";
//-- 日付の書き込み
var col="";
var flag_today = 0
for(sunday = 1-day.getDay(); sunday <= numdays[month-1]; sunday +=7){
cc += "";
for(i = sunday; i < sunday + 7; i++){
if((i > 0) && (i <= numdays[month-1])){
day.setDate(i);
today = day.getDay();
if(thisday == i && year == now_year && month == now_month){
cc += ""; // 今日の背景色を黄色にする
flag_today = 1
today_holiday = i
}else{
cc += " | ";
flag_today = 0
}
if(today == 0){
col = "#ff0000"
}else if((i == holiday1)||(i == holiday2)||(i == holiday3)){
col = "#ff0000"
}else if((today == 1)&&((i-1 == holiday1)||(i-1 == holiday2)||(i-1 == holiday3))){
col = "#ff0000"
dd[i] = "振替休日"
}else if(today == 6){
col = "#0000ff"
}else{
col = "#000000"
}
//-- 今日の日付を強調表示
if(flag_today == 1){
cc +="" + i + ""
cc +=" | "
}else{
cc +="" + i + ""
}
}else{
cc +=" | ";
dd[i]=""
}
}
cc +=" ";
}
cc +=""
cc +=" ";
cc +=" |
"
//-- 祝日名の表示
cc +=""
cc +=""
cc +=" | ";
cc +="
";
cc +=""
cc +="
";
return cc ;
//document.write(cc);
}
//---------- テキストの表示 ------------
function cal_changeElementText(id, newText) {
element = document.getElementById(id);
element.innerHTML = newText;
}
//-- 祝日名の表示
function holiday_com(ii){
var qq = dd[ii]
if(qq == null){
qq=" "
}
cal_changeElementText('holiday', qq)
}