holidays
日本の休日や祝日の判定をしたり祝日の名称を取得する拡張機能です
1955年1月~翌年くらいまでの祝日判定が出来ます
祝日と祝日に挟まれた平日と、日曜が祝日の場合の次の平日の場合の振替休日にも対応しています
内閣府の国民の祝日についてのページで公開されているCSVデータを元にしています
ライブラリをインストールした時点での最新の情報を取得するようしました
注意事項
- 内閣府がCSVのURLを変更しない限りは大丈夫かと思います。
- CSVをライブラリとして取り込んでいるため、この Holidays ライブラリを毎年2~3月くらいには更新する必要があります(祝日データの更新が毎年2月頃だそうです)
github
packagist
使い方
composer でインストールします
# install の場合
composer require kanagama/holidays
# update の場合
composer update -w kanagama/holidays
使いたいクラスで use するだけです
use Kanagama\Holidays\Holidays;
メソッド一覧
checkPublicHoliday(int $year, int $month, int $day): bool
指定日が祝日または振替休日であれば true を返却します
$holidays = new Holidays();
// true (春分の日)
$holiday = $holidays->checkPublicHoliday(2023, 3, 21);
getPublicHolidayName(int $year, int $month, int $day): ?string
指定日の祝日名を返却します。指定日が祝日でない場合は null を返却します。
※祝日と祝日に挟まれた平日や、日曜が祝日の場合の次の平日の場合は「振替休日」を返却します
$holidays = new Holidays();
// 春分の日
$holidayName = $holidays->getPublicHolidayName(2023, 3, 21);
checkHoliday(int $year, int $month, int $day): bool
指定日が祝日・振替休日もしくは土日であれば true を返却します。
$holidays = new Holidays();
// true (土曜)
$holiday = $holidays->checkHoliday(2023, 3, 19);
checkDayBeforePublicHoliday(int $year, int $month, int $day): bool
指定日が祝前日であれば true を返却します
$holidays = new Holidays();
// true (翌日が春分の日)
$holiday = $holidays->checkDayBeforePublicHoliday(2023, 3, 20);
checkDayAfterPublicHoliday(int $year, int $month, int $day): bool
指定日が祝後日であれば true を返却します
$holidays = new Holidays();
// true (前日が春分の日)
$holiday = $holidays->checkDayAfterPublicHoliday(2023, 3, 22);
addPublicHoliday(int $year, int $month, int $day, string $holidayName): void
指定日をオレオレ祝日に設定します。既に祝日設定されている場合は上書きされます
※こちらで設定した祝日は、振替休日判定には利用されません
$holidays = new Holidays();
$holidays->addPublicHoliday(2023, 3, 20, '設立記念日');
※他のファンクションでも同様に、指定した日が祝日判定されます
getPublicHolidayName() でも名称が取得されます
全てのメソッドが静的に呼び出せます
# example
$result = Holidays::checkPublicHoliday(2023, 3, 21);
$result = Holidays::getPublicHolidayName(2023, 3, 21);
$result = Holidays::checkHoliday(2023, 3, 21);
$result = Holidays::checkDayBeforePublicHoliday(2023, 3, 21);
$result = Holidays::checkDayAfterPublicHoliday(2023, 3, 21);
$result = Holidays::addPublicHoliday(2023, 3, 20, '設立記念日');
そもそもは下記のライブラリに追加したいなと思い作ったやつです
祝日対応予定です。よかったらどうぞ
composer install 時にエラーが出る場合
composer.json に下記を追加してみてください
"recursive": true
}