php 日数計算

Webブラウザから受け取った開始年月と終了年月との間の日数と年月を計算し、Webブラウザに表示します。

プログラム言語:PHP

データベース:無し

動作条件

インターネットに接続してある標準的なWebブラウザで動きます。(Firefox、Safari、Chromeを推奨)

ソース

実際の文字コードはUTF-8ですが、ここではShift-JISにして表示します。

MVCfile name概要
Controllernissu.phpプログラムの本体
Modelnissu_model.php日数計算と年月計算の関数を定義
Viewnissu_tmpl.php結果を表示するテンプレート
nissu_guide.php操作説明と入力エラーの表示
nissu_submenu.php二つの日付の入力フォーマット
nissu_main.php計算結果の表示
header.php共通ヘッダー
footer.php共通フッター

controllers/nissu.php

最初にCALLされたときには、index()が実行されます。ここでは操作説明を表示します。

日付が入力されたデータを受け取るとkeisan()が実行されます。ここでは以下の場合分けをしています。

数字が入力された数値に変換する。日付の範囲が妥当計算して結果を表示する。
日付の範囲が不適当入力エラーと・操作説明を表示する。
数字が入力されない入力エラーと・操作説明を表示する。

models/nissu_model.php

各関数の機能は以下のとおりです。

generate_photo_name()generate_photo_name():文字の表示だけでは画面が寂しいので飛行機の画像をランダムに表示しますが、そのファイル名を乱数で生成します。結果はav268.jpgのようになりますが、avはaviationのavです。念のため。
nengetsu($kara_ymd,$made_ymd)二つの引数を年月日にして、その間の年月を計算します。結果は12年8ヶ月というようにして返します。
nissu_dd($kara_ymd,$made_ymd)二つの引数を年月日にして、その間の日付を計算します。結果は1,547日というように3桁毎のコンマを入れて返します。

views/nissu.tmpl.php

Webブラウザに送るhtmlのテンプレートです。header.php、nissu_submenu.php、footer.phpをインクルードします。変数として$mainがありますが、ここにはnissu_guide.phpやnissu_main.phpから生成されたhtml文が入ります。

views/nissu_guide.php

操作説明のhtml文です。$commentという変数に入力エラーメッセージを入れて完成させ、テンプレートnissu_tmpt.phpの変数$mainに入れます。

views/nissu_submenu.php

テンプレートnissu_tmpl.phpに読み込まれるhtml文です。日付を入力するフォーマットでは、「計算」ボタンを押すとnissu.phpの中のkeisan()メソッドにデータを引き渡します。

「操作説明を見る」という部分は、nissu.phpのindex()を呼びます。

views/nissu_main.php

計算結果表示用のhtml文です。各変数に値を入れて完成させ、テンプレートnissu_tmpt.phpの変数$mainに入れます。

実行

クリックして下さい。トップページの左側の枠からも実行できます。

2014年9月14日 記