/*
NationalHolydayJP.js
日本の祝祭日(平成19年1月1日施行版)
プログラムのライセンスはPDとします。
*/
//春分日チェック
function chkShunbun(_year){
var y = _year;
var mncdd = new Date(2008,2,20,14,48); //2008年3月20日14時48分
var mncddt = mncdd.getTime();
mncddt += 365.24219*(y-2008)*86400000;
mncdd.setTime(mncddt);
return mncdd.getDate();
}
//秋分日チェック
function chkShubun(_year){
var y = _year;
var mncdd = new Date(2007,8,23,18,51);
var mncddt = mncdd.getTime();
mncddt += 365.24219*(y-2007)*86400000; //2007年9月23日18時51分
mncdd.setTime(mncddt);
return mncdd.getDate();
}
//本体
function chkHolydayJP(_year,_month,_day){
var year = _year; var month = _month; var day = _day;
var dd = new Date(year,month-1,day,0,0,0);
//元日(1月1日)
if(month == 1 && day == 1) return 1;
if(month == 1 && day == 2 && dd.getDay() == 1) return 1001;
//成人の日(1月第二月曜日)
if(month == 1 && day >= 8 && day <= 14 && dd.getDay() == 1) return 2;
//建国記念の日(2月11日)
if(month == 2 && day == 11) return 3;
if(month == 2 && day == 12 && dd.getDay() == 1) return 1003;
//春分の日(春分日)
if(month == 3 && day == chkShunbun(year)) return 4;
if(month == 3 && day == chkShunbun(year)+1 && dd.getDay() == 1) return 1004;
//昭和の日(4月29日)
if(month == 4 && day == 29) return 5;
if(month == 4 && day == 30 && dd.getDay() == 1) return 1005;
//憲法記念日(5月3日)
if(month == 5 && day == 3) return 6;
//みどりの日(5月4日)
if(month == 5 && day == 4) return 7;
//こどもの日(5月5日)
if(month == 5 && day == 5) return 8;
if(month == 5 && day == 6 && dd.getDay() <= 3) return 1008;
//海の日(7月第三月曜日)
if(month == 7 && day >= 15 && day <= 21 && dd.getDay() == 1) return 9;
//敬老の日(9月第三月曜日)
if(month == 9 && day >= 15 && day <= 21 && dd.getDay() == 1) return 10;
//秋分の日(秋分日)
if(month == 9 && day == chkShubun(year)) return 11;
if(month == 9 && day == chkShubun(year)+1 && dd.getDay() == 1) return 1011;
//敬老の日と秋分の日の間の国民の休日
if(month == 9 && day-1 >= 15 && day-1 <= 21 && dd.getDay() == 2 &&
month == 9 && day+1 == chkShubun(year)) return 2011;
//体育の日(10月第二月曜日)
if(month == 10 && day >= 8 && day <= 14 && dd.getDay() == 1) return 12;
//文化の日(11月3日)
if(month == 11 && day == 3) return 13;
if(month == 11 && day == 4 && dd.getDay() == 1) return 1013;
//勤労感謝の日(11月23日)
if(month == 11 && day == 23) return 14;
if(month == 11 && day == 24 && dd.getDay() == 1) return 1014;
//天皇誕生日(12月23日)
if(month == 12 && day == 23) return 15;
if(month == 12 && day == 24 && dd.getDay() == 1) return 1015;
return 0;
}
$(function (){
var mncYear,mncMonth,mncDay;
if(!document.getElementById("crteventyear")) return;
mncYear = document.getElementById("crteventyear").firstChild.nodeValue;
mncMonth = document.getElementById("crteventmonth").firstChild.nodeValue;
mncDay = document.getElementById("crteventday").firstChild.nodeValue;
for(i=1;i<32;i++){
var mncDayID = "crtevent"+i;
var mncElem = document.getElementById(mncDayID);
if(mncElem)
if(chkHolydayJP(mncYear,mncMonth,i) != 0)
mncElem.style.color = "red";
}
});