祝日判定web API

業務上祝日か否かを判定したい事が多く、ネットで方法を調べると最近ではgoogleAPIを利用した以下のようなサイトがヒットします。

管理人も最初はgoogleAPIを利用して済まそうかと思ったのですが、
やりたい事はプログラムが起動する際に休みかどうかのチェックを行いたいだけで、もっとシンプルな方式があってもよいのでは考えました。
全てプログラムで判定する方式もネットで公開されており、個人的にはスマートと思っていますが、 今後祝日の判定が変わった場合、ロジックのメンテを考えると多分ロジック自体を思い出すのに四苦八苦しそうなので できるだけメンテが楽orフリーに近い形でのサービス提供がよいかと考え、内閣府のwebを解析して最新データを抽出するといった方式としました。
また、データの信頼性の面からも最終的には内閣府のwebを元にその範囲内でデータを作成するのが適切と考え、webAPIとして整理しました。
あわせて日本特有の官公庁の休み、東京市場(東証)の休みについても判定できるようにしました。
後ニーズがあるかわかりませんが、指定日の営業日の判定(休みであれば前/翌営業日)を取得できるwebAPIも公開しました。
当サイトでは利用しておりませんが、参考までに祝日判定ロジックを公開しているサイトをご紹介しておきます。

利用方法

当日が祝日か否か判定したい場合

アクセス先URL

http://s-proj.com/utils/checkHoliday.php

パラメータ

パラメータ説明
opt gov : 官公庁(12/29-1/3が休み)
market : 株式市場(12/31-1/3が休み)※東証
normal : 国民の祝日に関する法律に基づく休み
未指定時は normal
kind h : 土、日、祝日(振替休日含む)か否かの判定[holiday]
ph : 祝日か否かの判定[public holiday]
ws : 週はじめか否かの判定
we : 週末か否かの判定
ms : 月はじめか否かの判定
me : 月末か否かの判定
未指定時は h
dateyyyymmdd 判定したい年月日(2000年以降来年まで)
未指定時は当日

週末判定 サンプルhttp://s-proj.com/utils/checkHoliday.php?kind=we
日時判定 サンプルhttp://s-proj.com/utils/checkHoliday.php?kind=h&date=20110611

返却値

返却値
kind=hの場合holiday : 土、日、祝日(振替休日含む)
else : その他
error : システムエラー
kind=phの場合holiday : 祝日
else : その他(祝日でない土日及び振替休日はelseが返却されます)
error : システムエラー
kind=wsの場合weekstart : 週はじめ
else : その他
error : システムエラー
kind=weの場合weekend : 週末
else : その他
error : システムエラー
kind=msの場合monthstart : 月はじめ
else : その他
error : システムエラー
kind=meの場合monthend : 月末
else : その他
error : システムエラー
週末判定は、当日が平日でそれ以降日曜日まで平日が無い場合、その日を週末と判断します。
週はじめ、月はじめ、月末も考え方は同じです。
例えば、金曜日が祝日の場合は木曜日が週末となります。

アクセスするphpのサンプル

$url = 'http://s-proj.com/utils/checkHoliday.php';
// ファイルをオープンして既存のコンテンツを取得します
$holiday_status = file_get_contents($url);
if($holiday_status=="holiday"){
    print "holiday";
}else if($holiday_status=="else"){
    print "else";
}else{
    print "error";
}

営業日の取得(指定日の前後10日だけ検索します)

アクセス先URL

http://s-proj.com/utils/getBusinessDay.php

パラメータ

パラメータ説明
kind next : 指定日が営業日でなければ、直後の営業日を取得
prev : 指定日が営業日でなければ、直後の営業日を取得
未指定時は next
dateyyyymmdd 判定したい年月日(2000年以降来年まで)
未指定時は当日
date_format 出力日の形式
yyyy/mm/dd
yyyy-mm-dd
yyyymmdd
未指定時は yyyymmdd

2018年1月8日の営業日(祝日の場合は直後の営業日)を取得した場合
http://s-proj.com/utils/getBusinessDay.php?kind=next&date_format=yyyy/mm/dd&date=20180108

返却値

返却値
該当する営業日(date_formatで指定した形式) ex. 20180109対象日が無い場合は no date

データの対応範囲

2000年~内閣府に掲載されている年まで

データソース

国民の祝日について(内閣府)
国家公務員法 休日及び休暇に関する事項(総務省)

更新頻度

一日一回

文字コード

utf-8

著作権等

MITライセンス
個人、商用含め自由にご利用いただけます。
ただし、データの誤り、サービスの継続性含め、いかなる理由により損害等が発生しても当サイトは一切責任をもちません。

データについて

2010年以降のデータについては内閣府のデータから作成(予定)しておりますが、2000-2009年のデータについては調査により作成したデータとなります。

お問合わせ、ご質問等

mail address
事前連絡等は不要ですが、ご一報いただけるとAPIを変更する場合など多少融通がききます。

その他のサイト

Top
オンライン戦略ボード
祝日判定webAPI
CodeIgniter + PostgreSQL

ページ更新日

2018.1.10 前/翌営業日取得用のwebAPIを追加
2017.12.21 国民の祝日だけの判定用オプション(kind=ph)を追加
2017.12.8 2018年の祝日判定でエラーになっていたため対応
2011.12.13 一部制限について追記
2011.6.15 株式市場、官公庁用optパラメータ追加
2011.6.14 パラメータ追加
2011.6.6 サイトアップ