快速业务通道

PHP实现的简单日历代码

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

//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]年 &nbsp".$mon_name[$firstday[mon]-1]."月&nbsp月历";
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>&nbsp</TD>";
$up_to_firstday++;
}
else
{
//显示本月中的某一天
showline($day_count,"blue");
$day_count++;
}
}
echo "</TR>";
}
echo "</TABLE>";
echo "</CENTER>";
?>
</body>
</html>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号