当前位置:首页 > PHP教程 > php应用 > 列表

PHP万年历实现程序代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-30 13:34:06 浏览: 评论:0 

使用PHP实现万年历功能的要点:

得到当前要处理的月份总共有多少天$days,得到当前要处理的月份的一号是星期几$dayofweek,$days的作用:知道要处理的月份共有多少天,就可以通过循环输出天数了,$dayofweek的作用:只有知道每个月的1号是星期几,才能知道在输出天数之前需要输出多少空格(空白).

PHP完整实例代码如下:

  1. <?php 
  2. /** 
  3.  * PHP万年历 
  4.  * @author Fly 2012/10/16 
  5.  */ 
  6. class Calendar{ 
  7.     protected $_table;//table表格 
  8.     protected $_currentDate;//当前日期 
  9.     protected $_year;    //年 
  10.     protected $_month;    //月 
  11.     protected $_days;    //给定的月份应有的天数 
  12.     protected $_dayofweek;//给定月份的 1号 是星期几 
  13.     /** 
  14.      * 构造函数 
  15.      */ 
  16.     public function __construct()  
  17.     { 
  18.         $this->_table=""
  19.         $this->_year  = isset($_GET["y"])?$_GET["y"]:date("Y"); 
  20.         $this->_month = isset($_GET["m"])?$_GET["m"]:date("m"); 
  21.         if ($this->_month>12){//处理出现月份大于12的情况 
  22.             $this->_month=1; 
  23.             $this->_year++; 
  24.         } 
  25.         if ($this->_month<1){//处理出现月份小于1的情况 
  26.             $this->_month=12; 
  27.             $this->_year--; 
  28.         } 
  29.         $this->_currentDate = $this->_year.'年'.$this->_month.'月份';//当前得到的日期信息 
  30.         $this->_days           = date("t",mktime(0,0,0,$this->_month,1,$this->_year));//得到给定的月份应有的天数 
  31.         $this->_dayofweek    = date("w",mktime(0,0,0,$this->_month,1,$this->_year));//得到给定的月份的 1号 是星期几 
  32.     } 
  33.     /** 
  34.      * 输出标题和表头信息 
  35.      */ 
  36.     protected function _showTitle() 
  37.     { 
  38.         $this->_table="<table><thead><tr align='center'><th colspan='7'>".$this->_currentDate."</th></tr></thead>"
  39.         $this->_table.="<tbody><tr>"
  40.         $this->_table .="<td style='color:red'>星期日</td>"
  41.         $this->_table .="<td>星期一</td>"
  42.         $this->_table .="<td>星期二</td>"
  43.         $this->_table .="<td>星期三</td>"
  44.         $this->_table .="<td>星期四</td>"
  45.         $this->_table .="<td>星期五</td>"
  46.         $this->_table .="<td style='color:red'>星期六</td>"
  47.         $this->_table.="</tr>"
  48.     } 
  49.     /** 
  50.      * 输出日期信息 
  51.      * 根据当前日期输出日期信息 
  52.      */ 
  53.     protected function _showDate() 
  54.     { 
  55.         $nums=$this->_dayofweek+1; 
  56.         for ($i=1;$i<=$this->_dayofweek;$i++){//输出1号之前的空白日期 
  57.             $this->_table.="<td>&nbsp</td>"
  58.         } 
  59.         for ($i=1;$i<=$this->_days;$i++){//输出天数信息 
  60.             if ($nums%7==0){//换行处理:7个一行 
  61.                 $this->_table.="<td>$i</td></tr><tr>";     
  62.             }else
  63.                 $this->_table.="<td>$i</td>"
  64.             } 
  65.             $nums++; 
  66.         } 
  67.         $this->_table.="</tbody></table>"
  68.         $this->_table.="<h3><a href='?y=".($this->_year)."&m=".($this->_month-1)."'>上一月</a>&nbsp;&nbsp;&nbsp;"
  69.         $this->_table.="<a href='?y=".($this->_year)."&m=".($this->_month+1)."'>下一月</a></h3>"
  70.     } 
  71.     /** 
  72.      * 输出日历 
  73.      */ 
  74.     public function showCalendar() 
  75.     { 
  76.         $this->_showTitle(); 
  77.         $this->_showDate(); 
  78.         echo $this->_table; 
  79.     } 
  80. $calc=new Calendar(); 
  81. $calc->showCalendar(); 

Tags: PHP万年历 PHP代码 PHP程序

分享到: