RのWeb制作

Webサービス制作のための技術情報を。データ分析(Python、機械学習コンペ他)や自作野球ゲームMeisyoのこと中心。

Web制作

PHPで祝日判定

投稿日:2013年10月28日 更新日:

elephpants-side
PHP 祝日判定で検索すると、「GoogleカレンダーAPIで祝日を取得する」ばかりです。
しかし、GoogleカレンダーAPIは抜け落ちている祝日が存在することが知られています。

今回は、抜け落ちが無いようなコードをお伝えします。すごく原始的なやり方です。

1.「$holidays」に休日を格納

無名関数を使用しているため、動作環境はPHP5.3以上が必要です

$holidays = function(){
	$holidays = array();
	$file_array = file("./holiday.log");
	for($i=0;$i<count($file_array);$i++){
		if($file_array[$i]){
			$file_array[$i] = str_replace(array("\r\n","\r","\n"),'',$file_array[$i]);
			$val = explode(',',$file_array[$i]);
			$holidays["$val[1]"] = $val[0];
		}
	}
	return $holidays;
};

2.祝日用ファイル「holiday.log」を設定

以下のデータを「holiday.log」にコピーして保存。

3.判定

配列「$holidays」の中に全て格納されています。
keyの形式は「year/month/day」(例:2013/1/1)であり、
valの出力は「祝日名」(例:$holidays[“2013/1/1”]で「元旦」)となっています。

4.祝日法が変わった場合には

祝日についてのトップページの少し下にある、祝日一覧に、入手したい年を記入して「Outlook祝日更新」をクリックします。

そうすると新しいウィンドウが出てくるので、下の方にある【 *~*年 Outlook 祝日更新データ 】を確認してください。

以下のようなデータが出てくると思います。(例:2013~2015年)

一番上の[日本] 51だけを外したデータを「holiday.log」にコピー&ペーストします。

そして、アップロードすると完了です。

5.注意点

異常なデータを削除する機能は付いていませんのでご注意ください。

-Web制作

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

[Meisyo]スタミナ減少による球速低下が酷過ぎる件について

最近SQLばっかり書いているRです。早く適正なSQLを書きたいものです…。 とはいえ、ネットで書かれているようなことは一通り理解してできるようになりました。やったぜ。 今回は、タイトルの通り・・・ ス …

[Meisyo] Viewは不要!SQL処理高速化方法

今回の問題は、対戦成績をデータ分析用に選手対選手で個別に保存していたことから始まります。 選手個人の総合成績をView処理で出力しまいした。 ただ・・・インデックス等がないのでめっちゃ計算時間が掛かる …

Google Driveを使ってXAMPP+CakePHPのドキュメントルートを共有する in Windows

どこでも同じように作業がしたい。 デスクトップでも、ノートでも。 無論、サーバー(XAMPP)も同じように動かしたいな ・・・ということで、Google Driveを使って環境を構築していきます。 今 …

ログがサービス改善の命

Meisyoでは常にログを取って、「ユーザがどこで困ってそうかな」を探し続けています。 探す方法はいたって簡単。 (何か問題があると考えて)ログを眺める 今回のアップデートでは、アイテムの購入数を選択 …

[Meisyo]ビッグデータから学ぶ試合の基礎設計4

ここでは、「どのパラメータが打率等にどれくらい関係するのか」を理解することで強いチームを作る指針を記載しておきます。 機械学習(重回帰分析)を使って本気で遊んでます。 実際のデータセットはこちら 野手 …