PHPで祝日を取得

3月 31st, 2008 admin Posted in PHP |

アルバイトの人が書いてくれた祝日リスト。祝日って意外と少ないんだなーと思った。
祝日の計算はできなくもないんだけど、結局規則が変わったりするので人の手無しでは駄目と言うことで割り切る
google calendarに20011年12月でアラートをしておいたけど、3年後もgoogle calendarを使っているかどうか不安なのと、法改正とかがあったときに、この関数を思い出すかどうかかなり不安だ

コード

	/**
	 * 任意の月の祝日を取得する
	 *
	 * @access public
	 * @param integer 取得する月
	 * @param integer 取得する年
	 * @return mixed
	 */
	 function getHoliday($month,$year = null){
	 	$year = is_null($year)? date('Y'):$year;

        $array = array(
		   2007 => array(
				1 => array(1=>1,8=>1),
				2 => array(11=>1,12=>1),
				3 => array(21=>1),
				4 => array(29=>1,30=>1),
				5 => array(3=>1,4=>1,5=>1),
				6 => array(),
				7 => array(16=>1),
				8 => array(),
				9 => array(17=>1,23=>1,24=>1),
				10 => array(8=>1),
				11 => array(3=>1,23=>1),
				12 => array(23=>1,24=>1)
				),
		   2008 => array(
				1 => array(1=>1,14=>1),
				2 => array(11=>1),
				3 => array(20=>1),
				4 => array(29=>1),
				5 => array(3=>1,4=>1,5=>1,6=>1),
				6 => array(),
				7 => array(21=>1),
				8 => array(),
				9 => array(15=>1,23=>1),
				10 => array(13=>1),
				11 => array(3=>1,23=>1,24=>1),
				12 => array(23=>1)
				),
		   2009 => array(
				1 => array(1=>1,12=>1),
				2 => array(11=>1),
				3 => array(20=>1),
				4 => array(29=>1),
				5 => array(3=>1,4=>1,5=>1,6=>1),
				6 => array(),
				7 => array(20=>1),
				8 => array(),
				9 => array(21=>1,22=>1,23=>1),
				10 => array(12=>1),
				11 => array(3=>1,23=>1),
				12 => array(23=>1)
				),
		   2010 => array(
				1 => array(1=>1,11=>1),
				2 => array(11=>1),
				3 => array(21=>1,22=>1),
				4 => array(29=>1),
				5 => array(3=>1,4=>1,5=>1),
				6 => array(),
				7 => array(19=>1),
				8 => array(),
				9 => array(20=>1,23=>1),
				10 => array(11=>1),
				11 => array(3=>1,23=>1),
				12 => array(23=>1)
				),
		   2011 => array(
				1 => array(1=>1,10=>1),
				2 => array(11=>1),
				3 => array(21=>1),
				4 => array(29=>1),
				5 => array(3=>1,4=>1,5=>1),
				6 => array(),
				7 => array(18=>1),
				8 => array(),
				9 => array(19=>1,23=>1),
				10 => array(10=>1),
				11 => array(3=>1,23=>1),
				12 => array(23=>1)
				)
  		 );
               return $array[$year][$month];
	 }

Leave a Reply