- Home ›
- PEAR入門 ›
- カレンダー(PEAR::Calendar) ›
- HERE
週の最初か最後かを判別する
実際にカレンダーのように表示するには順に取得したCalendar_Dayクラスのオブジェクトが何曜日なのかを判別できると便利です。都度曜日を取得してもいいのですが、週の初めの曜日か最後の曜日かを判別するメソッドが別途用意されています。このメソッドを使うことで、週の初めの曜日を日曜日に設定した場合でも月曜日に設定した場合でも変更することなく利用することができます。
週の初めの曜日かどうかを判別するには「Calendar_Day」クラスで用意されている「isFirst」メソッドを使います。
Calendar_Day::isFirst() boolean Calendar_Day::isFirst()
戻り値: Day オブジェクトが週の最初の日である場合に true
また週の最後の曜日かどうかを判別するには「Calendar_Day」クラスで用意されている「isLast」メソッドを使います。
Calendar_Day::isLast() boolean Calendar_Day::isLast()
戻り値: Day オブジェクトが週の最後の日である場合に true
どちらのメソッドの場合も対象の「Calendar_Day」クラスのオブジェクトが「Calendar_Month_Weekdays」クラスの「build」メソッドを使って作成されたものである場合にだけ利用できます。
実際には次のように記述します。
$month = new Calendar_Month_Weekdays(2007, 6, 0); $month -> build(); while ($day = $month -> fetch()){ if ($day -> isFirst()){ .... } .... if ($day -> isLast()){ .... } }
元になっている「Calendar_Month_Weekdays」クラスのオブジェクトが日曜日から開始していても月曜日から開始していても自動的に判別してくれます。
サンプルプログラム
では簡単なサンプルで実際に試してみます。
<html> <head> <title>PHP TEST</title> <style type="text/css"> td{ border:solid 1px #999999; text-align:right; padding:5px; } </style> </head> <body> <p>表形式で日付を取得</p> <?php require_once("Calendar/Month/Weekdays.php"); $month = new Calendar_Month_Weekdays(2007, 5, 0); $month -> build(); print("<p>2007年5月</p>"); print("<table>"); print("<tr><th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th></tr>"); while ($day = $month -> fetch()){ if ($day -> isFirst()){ print("<tr>"); print("<td style=¥"color:#ff0000¥">".$day->thisDay()."</td>"); }else if ($day -> isLast()){ print("<td style=¥"color:#0000ff¥">".$day->thisDay()."</td>"); print("</tr>"); }else{ print("<td>".$day->thisDay()."</td>"); } } print("</table>"); ?> </body> </html>
上記をWWWサーバに設置しブラウザで見てみると下記のように表示されます。
( Written by Tatsuo Ikura )