その年の祝日をかえす

| コメント(0) | トラックバック(0)
function GETHOLIDAY($year){
	###############ここから###############

#★★★★★日の決まった祝日★★★★★★★★★★★★★★★★★★★

$HOLARY = array('test','','','0101','0211','0429','0503','0505','1103','1123','1223');
#★★★★★春分・秋分日を計算(1980-2099まで有効)★★★★★★★★★

$dirY = 1980;
$syunbun = (int)(20.8431 + 0.242194*($year - $dirY) - (int)(($year - $dirY)/4));
$syubun = (int)(23.2488 + 0.242194*($year - $dirY) - (int)(($year - $dirY)/4));
$HOLARY[1] = ($year <= "2099") ? "03".substr("0".$syunbun,-2) : '';
$HOLARY[2] = ($year <= "2099") ? "09".substr("0".$syubun,-2) : '';

#★★★★★日の決まっていない祝日(何月第何月曜)★★★★★★

$mARY = array("01", "07", "09", "10");
$dARY = array("2", "3", "3", "2");
for($N=0;$N<4;$N++){
$monbuf=$mARY[$N];
$syu=$dARY[$N];
$youbibuf=strftime('%a',mktime(12,00,00,$monbuf,1,$year,0));#$Mon1月の1日の曜日を調べる
$shuARY=array("Sun"=>2,"Mon"=>1,"Tue"=>7,"Wed"=>6,"Thu"=>5,"Fri"=>4,"Sat"=>3);
$daybuf=$shuARY[$youbibuf];#これで最初の月曜日の日付がでる。
$daybuf+=($syu-1)*7;#これで何週目の月曜が指定できる。
if($daybuf<10){$daybuf=bTWOKETA($daybuf);}#2桁数字に整える。
$HOLARY[]=$monbuf.$daybuf;
}

#★★★★★★★★★★ここから振替休日★★★★★★★★★★★
foreach($HOLARY as $buf){
$Mbuf=substr($buf,0,2);
$Dbuf=substr($buf,2,2);
$youbi=bGETYOUBI($year,$Mbuf,$Dbuf);
if($youbi=="日"){
$Dbuf++;
$Dbuf=bTWOKETA($Dbuf);
}
$HOLARY2[]=$Mbuf.$Dbuf;
}

#★★★★★★★★★★ここから休日と休日の間・国民の休日を検索★★★★★★★★★★★

foreach($HOLARY2 as $buf){
$HOLARY3[]=$buf;
$Mbuf=substr($buf,0,2);
$Dbuf=substr($buf,2,2);
$Dbuf2=bTWOKETA($Dbuf+2);
if(array_search ($Mbuf.$Dbuf2, $HOLARY2)){
if(bGETYOUBI($year,$Mbuf,$Dbuf)<>"土"){
$HOLARY3[]=$Mbuf.bTWOKETA($Dbuf+1);
}
}
}
return $HOLARY3;

}

トラックバック(0)

トラックバックURL: http://www.adg7.com/mt/mt-tb.cgi/234

コメントする

エントリー一覧

このブログ記事について

このページは、たけうちとおるが2009年6月 3日 18:09に書いたブログ記事です。

ひとつ前のブログ記事は「time」です。

次のブログ記事は「曜日を調べる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

OpenID対応しています OpenIDについて