会社の月末の最終営業日にアラート通知を行う、といったことをしたかったので作りました。
祝日リストは配列で定義するなりyaml等で設定ファイルを作るなりDBで管理するなりGoogleカレンダーAPIで取得するなりして配列として読み込みます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
<?php $holiday_list = get_holiday_list(); // 月の最終日 $tmp_t = date('t'); // 最終営業日 $last_date = ''; for ($i=$tmp_t; $i>0; $i--) { $last_date = date('Y-m-'.$i); // 休業日判定 if(in_array($last_date, $holiday_list)){ continue; } // 土日判定 $w = date('w', strtotime($last_date)); if($w == '0' || $w == '6'){ continue; } // 月末最終営業日確定 break; } echo '月末最終営業日: '.$last_date .PHP_EOL; function get_holiday_list(){ $ret = array( // 会社の休業日 '2015-01-02', '2015-08-12', '2015-08-13', '2015-08-14', '2015-12-29', '2015-12-20', '2015-12-31', // 2015~2020年までの祝日 '2015-01-01', '2015-01-12', '2015-02-11', '2015-03-21', '2015-04-29', '2015-05-03', '2015-05-04', '2015-05-05', '2015-05-06', '2015-07-20', '2015-09-21', '2015-09-22', '2015-09-23', '2015-10-12', '2015-11-03', '2015-11-23', '2015-12-23', '2016-01-01', '2016-01-11', '2016-02-11', '2016-03-20', '2016-03-21', '2016-04-29', '2016-05-03', '2016-05-04', '2016-05-05', '2016-07-18', '2016-09-19', '2016-09-22', '2016-10-10', '2016-11-03', '2016-11-23', '2016-12-23', '2017-01-01', '2017-01-02', '2017-01-09', '2017-02-11', '2017-03-20', '2017-04-29', '2017-05-03', '2017-05-04', '2017-05-05', '2017-07-17', '2017-09-18', '2017-09-23', '2017-10-09', '2017-11-03', '2017-11-23', '2017-12-23', '2018-01-01', '2018-01-08', '2018-02-11', '2018-02-12', '2018-03-21', '2018-04-29', '2018-04-30', '2018-05-03', '2018-05-04', '2018-05-05', '2018-07-16', '2018-09-17', '2018-09-23', '2018-09-24', '2018-10-08', '2018-11-03', '2018-11-23', '2018-12-23', '2018-12-24', '2019-01-01', '2019-01-14', '2019-02-11', '2019-03-21', '2019-04-29', '2019-05-03', '2019-05-04', '2019-05-05', '2019-05-06', '2019-07-15', '2019-09-16', '2019-09-23', '2019-10-14', '2019-11-03', '2019-11-04', '2019-11-23', '2019-12-23', '2020-01-01', '2020-01-13', '2020-02-11', '2020-03-20', '2020-04-29', '2020-05-03', '2020-05-04', '2020-05-05', '2020-05-06', '2020-07-20', '2020-09-21', '2020-09-22', '2020-10-12', '2020-11-03', '2020-11-23', '2020-12-23', ); return $ret; } |
この記事を書いた人

-
2007年11月 27歳にしてプログラマーとしての道を志し、某就職支援会社のPHPスクールに通い始める
2007年12月 株式会社パクレゼルヴに紹介予定派遣社員として入社
2008年4月 株式会社パクレゼルヴの正社員となる
2013年4月 株式会社PRECSとして分社後も在籍
70% WEBエンジニア、30% インフラエンジニア