一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

php简单的日历程序

时间:2008-09-18 编辑:简简单单 来源:一聚教程网


class Calendar{
   /**
    * @desc       :简单的日历类,供大家学习
    * @author     :Allen Wu
    * @Email      :wukewei00o@126.com
    * @Date       :2008-09-12
    * @version    :v1.0
    */
    /*定义变量年、月、日*/
    private $year,$month,$day;
    /*定义数组星期并初始化*/
    private $week    = array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
    /*定义数组月份并初始化*/
    private $monthes = array("01"=>"一月",
                             "02"=>"二月",
                             "03"=>"三月",
                             "04"=>"四月",
                             "05"=>"五月",
                             "06"=>"六月",
                             "07"=>"七月",
                             "08"=>"八月",
                             "09"=>"九月",
                             "10"=>"十月",
                             "11"=>"十一月",
                             "12"=>"十二月"
                             );

    function __construct(){
        $year  = isset($_POST['year']) ? $_POST['year'] : date('Y');
        $month = isset($_POST['month']) ? $_POST['month'] : date('m');
        $day   = isset($_POST['day']) ? $_POST['day'] : date('d');
        $this->set($year, $month, $day);
    }
    /**
     * @desc   设置年、月、日的值
     * @params String $year
     * @params String $month
     * @params String $day
     * @return
     */
    private function set($year, $month, $day){
        $this->year  = $year;
        $this->month = $month;
        $this->day   = $day;
    }

    /**
     * @desc   获取年、月、日的值并以数组形式返回
     * @params Array $info
     * @retrun Array
     */
    function get(array $info){
        $info = array('year' => $this->year,
                      'month'=> $this->month,
                      'day'  => $this->day);
        return $info;
    }
    /**
     * @desc   获得指定日期的星期值
     * @params String $year
     * @params String $month
     * @params String $day
     * @return String
     */
    private function getWeek($year, $month, $day){
        $weekday = date("w",mktime(0,0,0,$month,$day,$year));
        return $weekday;
    }
 

    /**
     * 输出日历,有兴趣的可以改进!
     * 其实这不是一个方法,不希望在类里出现html和样式
     * 有兴趣的可以改进下!给大家起个抛砖引玉的作用
     *
     */
    public function out(){
        $firstDay = $this->getWeek($this->year, $this->month, 1);
        echo "
".
             "
".
             "
";

        /*打印星期标头*/
        for($week = 0; $week < count($this->week); $week++){
            echo "";      //补充打印
                for($i = 0; $i < $firstDay; $i++){
                    echo "
".$this->week[$week];
        }

        /*打印所有日期*/
        for($tmpd = 1; $tmpd <= date("t",mktime(0,0,0,$this->month,$this->day,$this->year)); $tmpd++){
            if(strcmp($tmpd, $this->day) == 0){   //获得当前日期,做标记
                $flag="bgcolor='#ff0000'";
            }else{
                $flag=" bgcolor='#ffffff'";
            }
            if($tmpd == 1){
                echo "
";
                }
            }
            if(strcmp($this->getWeek($this->year, $this->month, $tmpd), 0) == 0){
                echo "
$tmpd";
            }else{
                echo "
$tmpd";
            }
        }
        echo "
";
    }
}
$obj = new Calendar();
$obj->out();
?>

热门栏目