<?php
$daysOfMonth=array(31,28,31,30,31,30,31,31,30,31,30,31);
$daysOfMonthLY=array(31,29,31,30,31,30,31,31,30,31,30,31);
$DofW=array('日','一','二','三','四','五','六');
$Year=(int)isset($_GET['year'])?$_GET['year']:date('Y');
$Month=(int)isset($_GET['month'])?$_GET['month']:date('m');
$Day=(int)isset($_GET['day'])?$_GET['day']:date('d');
$cYear=$Year;
//在Windows系统中函数string date(string format[,int timestamp])范围限制为从1970年1月1日到2038年1月19日。
//日历循环周期为28年,以下两个循环进行范围调整
while($cYear<1971) $cYear+=28;
while($cYear>2037) $cYear-=28;
$Week=(int)date('w',strtotime($cYear*100+$Month.'01'));
if ((($Year%4==0)&&($Year%100!=0))||($Year%400==0))
$DayOfMonth=$daysOfMonthLY[$Month-1];
else
$DayOfMonth=$daysOfMonth[$Month-1];
?>
<html>
<head>
<title>日历</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Author" content="HuangJian">
<style type="text/css"><!--
BODY,TH,TD,SELECT {
font-family: 宋体;
font-size: 9pt;
color:#003399;
}
A:link {
color:#003399;
text-decoration:none;
}
A:visited {
color:#003399;
text-decoration:none;
}
A:hover {
color:#FFA500;
text-decoration:none;
}
--></style>
<script language="javascript"><!--
function CalDay(dateStr)
{
if(opener!=null)
{
opener.restart(dateStr)
self.close();
}
}
window.moveTo((screen.width-240)/2,(screen.height-240)/2);
window.resizeTo(240,220);
//--></script>
</head>
<body>
<form name="form_cal" action="#" method="get">
<table border="1" cellpadding="2" cellspacing="0" width="200" align="center">
<tr bgcolor="#CCEEFF">
<td colspan="7" align="right">
<a href="cal.php" title="转到今天">日历</a> <select name="year" onChange="javascript:form_cal.submit()">
<?php
for($i=1901;$i<=2100;$i++)
printf("<option value=\"%d\" %s >%d</option>\n",$i,$i==$Year?'selected':'',$i);
echo '</select>年 <select name="month" onChange="javascript:form_cal.submit()">';
for($i=1;$i<=12;$i++)
printf("<option value=\"%02d\"%s>%02d</option>\n",$i,$i==$Month?' selected ':'',$i);
echo '</select>月</td></tr><tr align="center">';
for($i=0;$i<7;$i++)
echo '<th>'.$DofW[$i].'</th>';
echo '</tr><tr align="center">';
for($i=0;$i<$Week;$i++)
echo '<td> </td>';
for($day=1;$day<=$DayOfMonth;$day++)
{
echo '<td';
if($day==$Day) echo ' bgcolor="#CCEEFF"';
printf("><a href=\"javascript:CalDay('%d-%02d-%02d')\">%d</a></td>\n",$Year,$Month,$day,$day);
if(($day+$Week)%7==0&&$day!=$DayOfMonth) echo '</tr><tr align="center">';
}
for($day--;($day+$Week)%7!=0;$day++)
echo '<td> </td>';
?>
</tr></table></form></body></html>