カレンダーに予定が表示出来るようにしました。
その時に使った関数を自分用メモに。
mysql_result
取得したDBデータから行と列の場所を指定してデータを抜き出すことが出来るMySQL用の関数
mb_convert_encoding
文字コード変換用関数。
今回は表示についてShift-JISを使用しているので抜き出したデータを本関数を使用してShift-JISに変換してから表示する。
カレンダーに予定が表示出来るようにしました。
その時に使った関数を自分用メモに。
mysql_result
取得したDBデータから行と列の場所を指定してデータを抜き出すことが出来るMySQL用の関数
mb_convert_encoding
文字コード変換用関数。
今回は表示についてShift-JISを使用しているので抜き出したデータを本関数を使用してShift-JISに変換してから表示する。
DBとSQL文(selectとinsert)を使った簡単なものを作ってみました。
日程と内容を記載するフォームと、データベースの内容を読み出してそのまま表示するだけの物です。
こちら
後、最低限勉強しないといけないのはDBの内容を編集する方法と、削除する方法かな?
さ?頑張るかな。
今回新たに使った便利な関数、定数
basename(パス名)
パスからファイル名を得る関数
nl2br(文字列)
引数に指定した文字列内の改行コードの前にXHTMLによる改行文字を挿入する関数
__FILE__
フルパスを取得する定数
7/5に作った祝日判定関数も追加してみた。
と言う訳で、カレンダー第二段に実装した機能
・祝日判定
・閏年判定
・URIでの年月判定
ついでに日程チェックも実装。年が4桁、月、日が2桁の数字以外はエラーとするようにしました。
こちらのチェックは外部関数で実装。ソースはこちら。カレンダー本体はこちらにあります。
閏年の定義が分かったので実装開始!
閏年とは
「西暦年数が100の倍数のときは400で割れる年、100の倍数でないときは4で割り切れる年を閏年とし、その他を平年とする」
ということらしいです。
まず「西暦年数が100の倍数のときは400で割れる年」から
((西暦 % 100) == 0) && ((西暦 % 400) == 0)
で求めることが出来る。
また「100の倍数でないときは4で割り切れる年」については
((西暦 % 100) != 0) && ((西暦 % 4) == 0)
で、求めることが出来る。
また現状だと表示できるのはソースに記載した年月のカレンダーだけなので、URIに記載することで表示出来る年月を変更したい。
と言う事で、URIの後ろに「?date=XXXXXXXX」と記載することで対応する。
XXXXXXXXのフォーマットは年4桁、月2桁、日2桁とする。
こちらは$_GET[‘date’]で取得すればソースの中で使用可能と。
さて、ソースは明日作っていこう。
コレは別関数にして今までdate関数で曜日を取得していたのを変更すれば出来そう。
でもdate関数使って月の始めを求めるように実装したから純粋に置き換えするだけじゃ駄目だな・・・。
要検討!
曜日はdate関数使って取得して、新規に祝日の判定だけを行う関数を作れば良いのか!
そうすると1つのデータを表示するために同じような処理を行う関数を2回呼ぶ事になるんだけど、それって処理としてどうなんだ?
phpにもC言語みたいに構造体とかあれば曜日+祝日ってデータを返す関数実装するだけなんだけどな?。
今読んでる入門書では構造体なんて出てきてないよな・・・。
SESSION使って複数のデータやり取りすればいいのか?
とりあえず祝日判定する関数を作ってみよう。
祝日の判定だけを行う関数を作ってみました。
戻り値1の場合その日は休日、それ以外は0を返すという仕様になっています。
ソースはlこちら