祝日だとTrueを返す関数
ただし春分の日と秋分の日は明確に決められていないので注意。
春分と秋分を日本政府が計算して、春分の日と秋分の日が発表されています。
function Holiday_check($year,$month,$day){
//正月1月1日
if($month==1 && $day==1){
return true;
}
//成人の日1月第2月曜
//振り替えの項
//建国記念の日 2月11日
if($month==2 && $day==11){
return true;
}
//春分の日 春分日 3月
if($month==3 && 1980<=$year && $year<2100){
if($day==intval(20.8431+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
if($month==3 && 2100<=$year && $year<2150){
if($day==intval(21.8510+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
//昭和の日4月29日
if($month==4 && $day==29){
return true;
}
//憲法記念日 5月 3日
if($month==5 && $day==3){
return true;
}
//みどりの日 5月 4日
if($month==5 && $day==4){
return true;
}
//こどもの日 5月 5日
if($month==5 && $day==5){
return true;
}
//海の日7月第3月曜日
//振り替えの項
//敬老の日9月第3月曜日
//振り替えの項
//秋分の日 秋分日 9月
if($month==9){
$syun=0;
if(1980<=$year && $year<2100){
$syun=intval(23.2488+0.242194*($year-1980)-intval(($year-1980)/4));
}elseif(2100<=$year && $year<2150){
$syun=intval(24.2488+0.242194*($year-1980)-intval(($year-1980)/4));
}
if($day==$syun){
return true;
}
if($day+1==$syun && date('w',mktime(0,0,0,$month,$day,$year))==2 && 7*2<$day-1 && $day-1<=7*3)
return true;
}
//体育の日10月第2月曜
//振り替えの項
//文化の日 11月 3日
if($month==11 && $day==3){
return true;
}
//勤労感謝の日 11月23日
if($month==11 && $day==23){
return true;
}
//天皇誕生日 12月23日
if($month==12 && $day==23){
return true;
}
//振り替えの項
if(date('w',mktime(0,0,0,$month,$day,$year))==1){
//正月1月1日
if($month==1 && $day==2){
return true;
}
//成人の日1月第2月曜
if($month==1 && 7*1<$day && $day<=7*2){
return true;
}
//建国記念の日 2月11日
if($month==2 && $day==12){
return true;
}
//春分の日 春分日 3月
if($month==3 && 1980<=$year && $year<2100){
if($day==1+intval(20.8431+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
if($month==3 && 2100<=$year && $year<2150){
if($day==1+intval(21.8510+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
//昭和の日4月29日
if($month==4 && $day==30){
return true;
}
//憲法記念日 5月 3日
if($month==5 && $day==4){
return true;
}
//みどりの日 5月 4日
if($month==5 && $day==5){
return true;
}
//こどもの日 5月 5日
if($month==5 && $day==6){
return true;
}
//海の日7月第3月曜日
if($month==7 && 7*2<$day && $day<=7*3){
return true;
}
//敬老の日9月第3月曜日
if($month==9 && 7*2<$day && $day<=7*3){
return true;
}
//秋分の日 秋分日 9月
if($month==9 && 1980<=$year && $year<2100){
if($day==1+intval(23.2488+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
if($month==9 && 2100<=$year && $year<2150){
if($day==1+intval(24.2488+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
//体育の日10月第2月曜
if($month==10 && 7*1<$day && $day<=7*2){
return true;
}
//文化の日 11月 3日
if($month==11 && $day==4){
return true;
}
//勤労感謝の日 11月23日
if($month==11 && $day==24){
return true;
}
//天皇誕生日 12月23日
if($month==12 && $day==24){
return true;
}
}
return false;
}
//正月1月1日
if($month==1 && $day==1){
return true;
}
//成人の日1月第2月曜
//振り替えの項
//建国記念の日 2月11日
if($month==2 && $day==11){
return true;
}
//春分の日 春分日 3月
if($month==3 && 1980<=$year && $year<2100){
if($day==intval(20.8431+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
if($month==3 && 2100<=$year && $year<2150){
if($day==intval(21.8510+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
//昭和の日4月29日
if($month==4 && $day==29){
return true;
}
//憲法記念日 5月 3日
if($month==5 && $day==3){
return true;
}
//みどりの日 5月 4日
if($month==5 && $day==4){
return true;
}
//こどもの日 5月 5日
if($month==5 && $day==5){
return true;
}
//海の日7月第3月曜日
//振り替えの項
//敬老の日9月第3月曜日
//振り替えの項
//秋分の日 秋分日 9月
if($month==9){
$syun=0;
if(1980<=$year && $year<2100){
$syun=intval(23.2488+0.242194*($year-1980)-intval(($year-1980)/4));
}elseif(2100<=$year && $year<2150){
$syun=intval(24.2488+0.242194*($year-1980)-intval(($year-1980)/4));
}
if($day==$syun){
return true;
}
if($day+1==$syun && date('w',mktime(0,0,0,$month,$day,$year))==2 && 7*2<$day-1 && $day-1<=7*3)
return true;
}
//体育の日10月第2月曜
//振り替えの項
//文化の日 11月 3日
if($month==11 && $day==3){
return true;
}
//勤労感謝の日 11月23日
if($month==11 && $day==23){
return true;
}
//天皇誕生日 12月23日
if($month==12 && $day==23){
return true;
}
//振り替えの項
if(date('w',mktime(0,0,0,$month,$day,$year))==1){
//正月1月1日
if($month==1 && $day==2){
return true;
}
//成人の日1月第2月曜
if($month==1 && 7*1<$day && $day<=7*2){
return true;
}
//建国記念の日 2月11日
if($month==2 && $day==12){
return true;
}
//春分の日 春分日 3月
if($month==3 && 1980<=$year && $year<2100){
if($day==1+intval(20.8431+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
if($month==3 && 2100<=$year && $year<2150){
if($day==1+intval(21.8510+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
//昭和の日4月29日
if($month==4 && $day==30){
return true;
}
//憲法記念日 5月 3日
if($month==5 && $day==4){
return true;
}
//みどりの日 5月 4日
if($month==5 && $day==5){
return true;
}
//こどもの日 5月 5日
if($month==5 && $day==6){
return true;
}
//海の日7月第3月曜日
if($month==7 && 7*2<$day && $day<=7*3){
return true;
}
//敬老の日9月第3月曜日
if($month==9 && 7*2<$day && $day<=7*3){
return true;
}
//秋分の日 秋分日 9月
if($month==9 && 1980<=$year && $year<2100){
if($day==1+intval(23.2488+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
if($month==9 && 2100<=$year && $year<2150){
if($day==1+intval(24.2488+0.242194*($year-1980)-intval(($year-1980)/4)))
return true;
}
//体育の日10月第2月曜
if($month==10 && 7*1<$day && $day<=7*2){
return true;
}
//文化の日 11月 3日
if($month==11 && $day==4){
return true;
}
//勤労感謝の日 11月23日
if($month==11 && $day==24){
return true;
}
//天皇誕生日 12月23日
if($month==12 && $day==24){
return true;
}
}
return false;
}