破晓2010

PHP&MySQL的学习与分享部落

导航

一个PHP日历程序

//calendar.php
<?                                     
/*******************************                     
 *  用来判断是否闰年的函数  *                     
 *  可以根据更复杂的算法改进 *                     
 *******************************/                     
 function leap_year($year)                        
  {                                 
   if($year% 4 == 0) // basic rule                   
      {                               
       return true; // is leap year                 
      }                               
  else                                 
   {                                  
   return false;                           
   }                                  
  }                                   
/*******************************                     
 *  对一些变量进行赋值操作  *                     
 *  特别注意对二月份的赋值  *                     
 *******************************/                     
 function setup()                             
  {                                    
  global $mon_num;                           
  $mon_num=array(31,30,31,30,31,30,31,31,30,31,30,31);         
   global $mon_name;                           
  $mon_name=array("一","二","三","四",                 
         "五","六","七","八",                  
         "九","十","十一","十二");               
  if (leap_year($firstday[year])) // basic rule             
     {                                
      $mon_num[1]=29; // is leap year                
     }                                
  else                                 
  {                                   
   $mon_num[1]=28;                           
  }                                   
  }                                    
/*******************************                     
 *  显示表格中的一格     *                     
 *  显示的内容和颜色可变   *                     
 *******************************/                     
    function showline($content,$show_color)              
    {                                 
     $begin_mark = "<TD WIDTH=60 HEIGHT=25>";             
 $begin_mark =$begin_mark."<FONT COLOR=$show_color>";          
 $end_mark = "</FONT></TD>";                      
     echo $begin_mark.$content.$end_mark ;               
    }                                 
?>                                     
<!--日历程序的正式开始-->                         
<html>                                   
<head>                                   
<title>                                  
社区日历                                  
</title>                                  
<meta http-equiv=content-type content="text/html; charset=gb2312">     
<head>                                   
<body>                                   
<?                                     
  //获得当前的日期                            
  $firstday = getdate(mktime(0,0,0,date("m"),1,date("Y")));       
  setup();                                
    //显示表格的名称                          
echo "<CENTER>";                            
echo "<TABLE BORDER=2 CELLSPACING=4>";                 
echo "<TH COLSPAN=7 HEIGHT=50>";                    
echo "<FONT COLOR=red SIZE=3 >";                    
echo "$firstday[year]年  ".$mon_name[$firstday[mon]-1]."月 月历";
echo "</FONT>";                             
echo "</TH>";                              
    //表头                               
$weekDay[0] = "日";                           
$weekDay[1] = "一";                           
$weekDay[2] = "二";                           
$weekDay[3] = "三";                           
$weekDay[4] = "四";                           
$weekDay[5] = "五";                           
$weekDay[6] = "六";                           
echo "<TR ALIGN="center" VALIGN="center">";             
//显示表格的第一行                           
for ($dayNum = 0; $dayNum < 7; ++$dayNum) {               
  showline($weekDay[$dayNum],"red");                  
}                                    
echo"</TR>";                              
  $toweek=$firstday[wday];//本月的第一天是星期几             
  $lastday=$mon_num[$firstday[mon]-1];//本月的最后一天是星期几      
  $day_count = 1;//当前应该显示的天数                   
$up_to_firstday = 1;//是否显示到本月的第一天              
for ($row = 0; $row <= ($lastday+$toweek-1)/7; ++$row)//本月有几个星期 
{echo "<TR ALIGN=center VALIGN=center>";             
 for ($col=1; $col<=7; ++$col)                  
 {                                
     //在第一天前面显示的都是"空"              
 if (($up_to_firstday <= $toweek) ||($day_count>$lastday))
 {                            
  echo "<TD> </TD>";             
  $up_to_firstday++;               
 }                            
 else                          
     {                            
        //显示本月中的某一天                    
        showline($day_count,"blue");                
  $day_count++;                  
         }                            
 }                                
 echo "</TR>";                          
}                                    
echo "</TABLE>";                            
echo "</CENTER>";                            
?>                                     
</body>                                  
</html> 

posted on 2010-05-10 17:44  破晓2010  阅读(1648)  评论(1编辑  收藏  举报