2011年10月31日月曜日

phpでカレンダー


<form action="calen.php" method="get">
    <select name="year">
        <option value="2011">2011</option>
        <option value="2012">2012</option>
        <option value="2013">2013</option>
        <option value="2014">2014</option>
    </select>
    <select name="month">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
    </select>
    <input type="submit">
</form>



<?php
class Calen{
    function Calen(){
        if($_GET){
            $this->select_year = $_GET["year"];
            $this->select_month = $_GET["month"];
        }else{
            $this->select_year = date("Y");//年
            $this->select_month = date("n");//月
        }
    }
    function show_calender(){

        $max_day = date("t",mktime(0,0,0,$this->select_month,1,$this->select_year));//最大日

        print "$this->select_year"."年"."$this->select_month"."月";
        print "<table border=\"1\">";
        for($day = 1; $day <= $max_day; $day++){
            $day_color = date("w",mktime(0,0,0,$this->select_month,$day,$this->select_year));//曜日にナンバーを取得
            if($day_color == 0 || $day == 1){    //1日か0ならtrタグ開始
                print "<tr>";
            }
           
            if($day == 1){
                $i = 0;
                $day_color = (int)$day_color;
                while($day_color > 0){
                    print "<td> </td>";
                    $day_color--;
                }
            }
            print "<td>".$day."</td>";
            if($day_color == 6){                //6ならtrタグ終了
                print "</tr>";
            }
        }
        print "</table>";

        //////////
    }
}

$calender = new Calen();
$calender->show_calender();



?>

0 件のコメント:

コメントを投稿