Pear Calendar

Pear::Calendar を使ってみました。

beta 版なので -f を付けて install しました。
-f は強制的に install する場合のやり方なので、
本来は以下のようにするようです。

# pear install Calendar-beta

Pear::Clanendar には目的に応じて使うクラスを選ぶようになっているのですが、カレンダーのレイアウトを意識しているのが面白そうだったので Calendar/Month/Weekdays.php を使ってみました。(他もそうなのかもしれませんが…)

使い方はこんな感じです。
2009年1月の場合。

<?php
require_once 'Calendar/Month/Weekdays.php';
// 0 で先頭を日曜日に指定しています
$cm = new Calendar_Month_Weekdays(2009, 1, 0);
$cm->build();
echo "<table>";
while($day = $cm->fetch()) {
    // 日付が存在しない場所だった場合
    if (!$day->isEmpty()) {
        $date = sprintf("%d", $day->thisDay());
    } else {
        $date = "";
    }
    // カレンダーの先頭の場合
    if ($day->isFirst()) {
        echo "<tr>";
    }
    // カレンダーの先頭の場合
    if ($day->isFirst()) {
        echo "<td style=background-color:#fcc>";
    } else {
        echo "<td>";
    }
    echo $date . "</td>";
    // カレンダーの右端の場合
    if ($day->isLast()) {
        echo "</tr>";
    }
}
echo "</table>";
?>

カレンダーのレイアウトを意識している点が面白いです。
説明文が変ですが言いたい事が伝わると思います :mrgreen: