Pearのカレンダーパッケージを使用して、年単位のカレンダーを作成する
require_once 'Calendar/Year.php';
//土日の色分けをしたいときに指定する
define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKDAYS);define
//日曜始まりにしたいときに指定
('CALENDAR_FIRST_DAY_OF_WEEK',0);
$year = new Calendar_Year(date('Y'));
$year->build();
/* @var $month Calendar_Month_Weekdays*/
while ($month = $year->fetch()) {
$month->build();
echo "<table>"
."<caption align="top">"
. $month->thisMonth()
."</caption>";
/* @var $day Calendar_Day */
while ($day = $month->fetch()) {
// 色の設定
if ($day->isFirst()) {
$color = "red";
} elseif($day->isLast()) {
$color = "blue";
} else {
$color = "black";
}
if(!$day->isEmpty()){
printf("<tr><td style="color:$color">%d月%d日 </td></tr>", $day->thisMonth(), $day->thisDay());
}
}
echo "</table>";
}
Yearで日曜始まりにするには
$year->build(array(),0)
としbuildの第二引数に0を入れてやる
Yearのfetch関数で返してくるオブジェクトはCALENDAR_MONTH_STATEの定数で変えることができる
define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKDAYS); // Use Calendar_Month_Weekdays
define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKS); // Use Calendar_Month_Weeks
define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH); // Use Calendar_Month