<?
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 >& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; < select name = " year " onChange = " javascript:form_cal.submit() " >
<? php
for ( $i = 1901 ; $i <= 2100 ; $i ++ )
printf ( " <option value="%d" %s >%d</option> " , $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> " , $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> " , $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 >
$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 >& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; < select name = " year " onChange = " javascript:form_cal.submit() " >
<? php
for ( $i = 1901 ; $i <= 2100 ; $i ++ )
printf ( " <option value="%d" %s >%d</option> " , $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> " , $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> " , $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 >