function JapaneseHoliday(myTime) {
var myYear = myTime.getFullYear();
var myMonth = myTime.getMonth() + 1;
var myDate = myTime.getDate();
var myHolidayShiko = new Date(1873, 9, 14, 0, 0, 0);
var myWeekDay = myTime.getDay() + 1;
var myVernalEquinox, myAutumnalEquinox;
if (myTime < myHolidayShiko) {
return("");
} else {
switch (myMonth) {
case 1: // 1月
switch (myDate) {
case 1: // 1月1日
if (myYear > 1948) {
return("元日");
} else;
break;
case 2: // 1月2日
if (myWeekDay == 2) {
if (myYear > 1973) {
return("振替休日");
} else;
} else;
break;
case 3: // 1月3日
if (myYear <= 1948) {
return("元始祭");
} else;
break;
case 5: // 1月5日
if (myYear <= 1948) {
return("新年宴會");
} else;
break;
case 8: // 1月8日
case 9: // 1月9日
case 10: // 1月10日
case 11: // 1月11日
case 12: // 1月12日
case 13: // 1月13日
case 14: // 1月14日
if (myWeekDay == 2) {
if (myYear >= 2000) {
return("成人の日");
} else;
} else;
break;
case 15: // 1月15日
if (myYear > 1948) {
if (myYear<2000) {
return("成人の日");
} else;
} else;
break;
case 16: // 1月16日
if (myWeekDay == 2) {
if (myYear > 1973) {
if (myYear<2000) {
return("振替休日");
} else;
} else;
} else;
break;
case 30: // 1月30日
if (myYear <= 1912) {
return("孝明天皇祭");
} else;
break;
default:
break;
}
break;
case 2: // 2月
switch (myDate) {
case 11: // 2月11日
if (myYear <= 1948) {
return("紀元節");
} else {
if (myYear > 1966) {
return("建国記念の日");
} else;
}
break;
case 12: // 2月12日
if (myWeekDay == 2) {
if (myYear > 1973) {
return("振替休日");
} else;
} else;
break;
// case 23: // 2月23日 // 今上天皇崩御の時に使用
// if (myYear > 9999) { // 9999は崩御の年
// return("天皇誕生日");
// } else;
// break;
case 24: // 2月24日
if (myYear == 1989) {
return("昭和天皇の大喪の礼");
}
// else {
// if (myWeekDay == 2) { // 今上天皇崩御の時に使用
// if (myYear > 9999) { // 9999は崩御の年
// return("振替休日");
// } else;
// }
else;
break;
default:
break;
}
break;
case 3: // 3月
switch (myDate) {
case 19: // 3月19日
if (myYear > 1878){ // 春分の計算
if (myYear < 1900){
myVernalEquinox = Math.floor(19.8277 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear < 1980){
myVernalEquinox = Math.floor(20.8357 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear < 2100){
myVernalEquinox = Math.floor(20.8431 + 0.242194 * (myYear - 1980)- Math.floor((myYear - 1980) / 4));
} else {
if (myYear <= 2150){
myVernalEquinox = Math.floor(21.8510 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
myVernalEquinox = 99;
}
}
}
}
} else {
myVernalEquinox = 99;
}
if (myDate == myVernalEquinox) {
if (myYear > 1878) {
if (myYear <= 1948) {
return("春季皇靈祭");
}
else {
return("春分の日");
}
} else;
} else;
break;
case 20: // 3月20日
case 21: // 3月21日
case 22: // 3月22日
if (myYear > 1878) { // 春分の計算
if (myYear < 1900) {
myVernalEquinox = Math.floor(19.8277 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear < 1980) {
myVernalEquinox = Math.floor(20.8357 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear < 2100) {
myVernalEquinox = Math.floor(20.8431 + 0.242194 * (myYear - 1980)- Math.floor((myYear - 1980) / 4));
} else {
if (myYear <= 2150) {
myVernalEquinox = Math.floor(21.8510 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
myVernalEquinox = 99;
}
}
}
}
} else {
myVernalEquinox = 99;
}
if (myDate == myVernalEquinox) {
if (myYear > 1878) {
if (myYear <= 1948) {
return("春季皇靈祭");
} else {
return("春分の日");
}
} else;
} else {
if (myDate == myVernalEquinox+1) {
if (myWeekDay == 2) {
if (myYear > 1973) {
return("振替休日");
} else;
} else;
} else;
}
break;
default:
break;
}
break;
case 4: // 4月
switch (myDate) {
case 3: // 4月3日
if (myYear <= 1948) {
return("神武天皇祭");
} else;
break;
case 10: // 4月10日
if (myYear == 1959) {
return("皇太子明仁親王の結婚の儀");
} else;
break;
case 29: // 4月29日
if (myYear >= 1927) {
if (myYear <= 1948) {
return("天長節");
} else {
if (myYear < 1989) {
return("天皇誕生日");
} else {
if (myYear < 2007) {
return("みどりの日");
} else {
return("昭和の日");
}
}
}
} else;
break;
case 30: // 4月30日
if (myWeekDay == 2) {
if (myYear >= 1973) {
return("振替休日");
} else;
} else;
break;
default:
break;
}
break;
case 5: // 5月
switch (myDate) {
case 3: // 5月3日
if (myYear > 1948) {
return("憲法記念日");
} else;
break;
case 4: // 5月4日
if (myYear < 2007) {
switch (myWeekDay){
case 1: // 日曜日のときは「ただの日曜日」
break;
case 2: // 憲法記念日の旧振替休日判定
if (myYear >= 1973) {
return("振替休日");
} else;
break;
default: // 旧国民の休日判定
if (myYear > 1985) {
return("国民の休日");
} else;
break;
}
} else {
return("みどりの日");
}
break;
case 5: // 5月5日
if (myYear > 1948){
return("こどもの日");
} else;
break;
case 6: // 5月6日
switch (myWeekDay){
case 2: // こどもの日の振替休日判定
if (myYear >= 1973) {
return("振替休日");
} else;
break;
case 3: // みどりの日の新振替休日判定(憲法記念日の新振替休日(5月6日(水))とセット)
case 4: // 憲法記念日の新振替休日判定(みどりの日の新振替休日(5月6日(火))とセット)
if (myYear >= 2007) {
return("振替休日");
} else;
break;
default:
break;
}
break;
default:
break;
}
break;
case 6: // 6月
switch (myDate) {
case 9: // 6月9日
if (myYear == 1993) {
return("皇太子徳仁親王の結婚の儀");
} else;
break;
// case 15: // 6月15日 // 6月にハッピーマンデーの祝日が制定された時に使用。
// case 16: // 6月16日
// case 17: // 6月17日
// case 18: // 6月18日
// case 19: // 6月19日
// case 20: // 6月20日
// case 21: // 6月21日
// if (myWeekDay == 2) {
// if (myYear >= 9999) { // 9999は6月に祝日が制定される年を表す
// return("??の日");
// } else;
// } else;
// break;
default:
break;
}
break;
case 7: // 7月
switch (myDate) {
case 15: // 7月15日
case 16: // 7月16日
case 17: // 7月17日
case 18: // 7月18日
case 19: // 7月19日
if (myWeekDay == 2) {
if (myYear >= 2003) {
return("海の日");
} else;
} else;
break;
case 20: // 7月20日
if (myYear >= 1996) {
if (myYear < 2003) {
return("海の日");
} else {
if (myWeekDay == 2) {
return("海の日");
} else;
}
} else;
break;
case 21: // 7月21日
if (myWeekDay == 2) {
if (myYear >= 1996) {
if (myYear < 2003) {
return("振替休日");
} else {
return("海の日");
}
} else;
} else;
break;
case 30: // 7月30日
if (myYear > 1912) {
if (myYear < 1927) {
return("明治天皇祭");
} else;
} else;
break;
default:
break;
}
break;
case 8: // 8月
if (myDate == 31) {
if (myYear > 1912) {
if (myYear < 1927) {
return("天長節");
} else;
} else;
} else;
break;
case 9: // 9月
switch (myDate) {
case 15: // 9月15日
if (myYear >= 1966) {
if (myYear < 2003) {
return("敬老の日");
} else {
if (myWeekDay == 2) {
return("敬老の日");
} else;
}
} else;
break;
case 16: // 9月16日
if (myWeekDay == 2) {
if (myYear >= 1973) {
if (myYear < 2003) {
return("振替休日");
} else {
return("敬老の日");
}
} else;
} else;
break;
case 17: // 9月17日
if (myYear < 1879) {
return("神嘗祭");
} else {
if (myYear >= 2003) {
if (myWeekDay == 2) {
return("敬老の日");
} else;
} else;
}
break;
case 18: // 9月18日
case 19: // 9月19日
case 20: // 9月20日
if (myWeekDay == 2) {
if (myYear >= 2003) {
return("敬老の日");
} else;
} else;
break;
case 21: // 9月21日
if (myYear >= 2003) {
switch (myWeekDay) {
case 2: // 9月21日(月)
return("敬老の日");
break;
case 3: // 9月21日(火)
if (myYear < 2100) { // 秋分の計算
myAutumnalEquinox = Math.floor(23.2488 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear >= 2100 && myYear <= 2150) {
myAutumnalEquinox = Math.floor(24.2488 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
myAutumnalEquinox = 99;
}
}
if (myDate == myAutumnalEquinox - 1) {
return("国民の休日");
} else;
break;
default:
break;
}
} else;
break;
case 22: // 9月22日
if (myYear >= 1878) { // 秋分の計算
if (myYear < 1900) {
myAutumnalEquinox = Math.floor(22.2588 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear < 1980) {
myAutumnalEquinox = Math.floor(23.2588 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear < 2100) {
myAutumnalEquinox = Math.floor(23.2488 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear <= 2150 ) {
myAutumnalEquinox = Math.floor(24.2488 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
myAutumnalEquinox = 99;
}
}
}
}
} else {
myAutumnalEquinox = 99;
}
if (myDate == myAutumnalEquinox) {
if (myYear >= 1878) {
if (myYear < 1948) {
return("秋季皇靈祭");
} else {
return("秋分の日");
}
} else;
} else {
if (myWeekDay == 3) {
if (myYear >= 2003) {
if (myDate == myAutumnalEquinox - 1) {
return("国民の休日");
} else;
} else;
} else;
}
break;
case 23: // 9月23日
case 24: // 9月24日
if (myYear >= 1878) { // 秋分の計算
if (myYear < 1900) {
myAutumnalEquinox = Math.floor(22.2588 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear < 1980) {
myAutumnalEquinox = Math.floor(23.2588 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear < 2100) {
myAutumnalEquinox = Math.floor(23.2488 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
if (myYear <= 2150) {
myAutumnalEquinox = Math.floor(24.2488 + 0.242194 * (myYear - 1980) - Math.floor((myYear - 1980) / 4));
} else {
myAutumnalEquinox = 99;
}
}
}
}
} else {
myAutumnalEquinox = 99;
}
if (myDate == myAutumnalEquinox) {
if (myYear >= 1878) {
if (myYear < 1948) {
return("秋季皇靈祭");
} else {
return("秋分の日");
}
} else;
} else {
if (myDate == myAutumnalEquinox + 1) {
if (myWeekDay == 2) {
if (myYear >= 1973) {
return("振替休日");
} else;
} else;
} else;
}
break;
default:
break;
}
break;
case 10: // 10月
switch (myDate) {
case 8: // 10月8日
case 9: // 10月9日
case 12: // 10月12日
case 13: // 10月13日
case 14: // 10月14日
if (myWeekDay == 2) {
if (myYear >= 2000) {
return("体育の日");
} else;
} else;
break;
case 10: // 10月10日
if (myYear >= 1966) {
if (myYear < 2000) {
return("体育の日");
} else {
if (myWeekDay == 2) {
return("体育の日");
} else;
}
} else;
break;
case 11: // 10月11日
if (myWeekDay == 2) {
if (myYear >= 1973) {
if (myYear < 2000) {
return("振替休日");
} else {
return("体育の日");
}
} else;
} else;
break;
case 17: // 10月17日
if (myYear >= 1879) {
if (myYear < 1948) {
return("神嘗祭");
} else;
} else;
break;
case 31: // 10月31日
if (myYear >= 1913) {
if (myYear < 1927) {
return("天長節祝日");
} else;
} else;
break;
default:
break;
}
break;
case 11: // 11月
switch (myDate) {
case 3: // 11月3日
if (myYear < 1912) {
return("天長節");
} else {
if (myYear >= 1927) {
if (myYear < 1948) {
return("明治節");
} else {
return("文化の日");
}
} else;
}
break;
case 4: // 11月4日
if (myWeekDay == 2) {
if (myYear >= 1973) {
return("振替休日");
} else;
} else;
break;
case 10: // 11月10日
switch (myYear) {
case 1915:
case 1928:
return("即位ノ禮");
break;
default:
break;
}
break;
case 12: // 11月12日
switch (myYear) {
case 1990:
// case 9999: // 今上天皇崩御で即位礼正殿の儀が行われる場合に使用(9999は即位礼正殿の儀の年)
return("即位礼正殿の儀");
break;
default:
break;
}
break;
// case 13: // 11月13日
// if (myYear == 9995) { // 即位礼正殿の儀の11月12日が日曜日に当たったときに使用
// return("振替休日");
// } else;
// break;
case 14: // 11月14日
switch (myYear) {
case 1915:
case 1928:
return("大嘗祭");
break;
default:
break;
}
break;
case 16: // 11月16日
switch (myYear) {
case 1915:
case 1928:
return("即位禮及大嘗祭後大饗第一日");
break;
default:
break;
}
break;
case 23: // 11月23日
if (myYear < 1948) {
return("新嘗祭");
} else {
return("勤労感謝の日");
}
break;
case 24: // 11月24日
if (myWeekDay == 2) {
if (myYear >= 1973) {
return("振替休日");
} else;
} else;
break;
default:
break;
}
break;
default: // 12月
switch (myDate) {
case 23: // 12月23日
if (myYear >= 1989) {
// if (myYear < 9999) { // 今上天皇崩御の時に使用、9999は崩御の年
return("天皇誕生日");
// } else;
} else;
break;
case 24: // 12月24日
if (myWeekDay == 2) {
if (myYear >= 1989) {
// if (myYear < 9999) { // 今上天皇崩御の時に使用、9999は崩御の年
return("振替休日");
// } else;
} else;
} else;
break;
case 25: // 12月25日
if (myYear >= 1927) {
if (myYear < 1948) {
return("大正天皇祭");
} else;
} else;
break;
default:
break;
}
break;
}
}
return("");
}
// Copyright (C) 2005 Kaihen Taisaku Hombu (Program-Renewal Research Institute). All Rights Reserved.