php 日数計算
Webブラウザから受け取った開始年月と終了年月との間の日数と年月を計算し、Webブラウザに表示します。
プログラム言語:PHP
データベース:無し
動作条件
インターネットに接続してある標準的なWebブラウザで動きます。(Firefox、Safari、Chromeを推奨)
ソース
実際の文字コードはUTF-8ですが、ここではShift-JISにして表示します。
MVC | file name | 概要 |
---|---|---|
Controller | nissu.php | プログラムの本体 |
Model | nissu_model.php | 日数計算と年月計算の関数を定義 |
View | nissu_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日 記