Calendars
|
|
|
|
<?php
////////////////////////////////////////////////////////////////////////////////
// check leap year function is_leapyear($year)
{
return ( ( ($year % 4 == 0) && ($year % 100 != 0) ) || $year % 400 == 0 ) ? true : false;
}
// get first day
// 0001 - 01 - 01 is Monday ! function get_firstdate($year)
{
$y = $year - 1;
return ($year + $y/4 - $y/100 + $y/400) % 7;
}
// subtitute $date number to date string and print function print_date($date)
{
// 0 : Sun ~ 6 : Sat
$date_arr = array( "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" );
return $date_arr[$date];
}
function get_date($year, $month, $day)
{
$days = array (
array ( 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 ),
array ( 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 )
);
$leap = is_leapyear($year) ? 1 : 0;
return ( get_firstdate($year) + $days[$leap][$month - 1] + $day - 1 ) % 7;
} ////////////////////////////////////////////////////////////////////////////////
function print_month_table($year, $month, $day)
{
$days = array (
array ( 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ),
array ( 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 )
);
$leap = is_leapyear($year) ? 1 : 0;
$days_cnt = $days[$leap][$month];
$first = get_date($year, $month, 1);
$last = get_date($year, $month, $days_cnt);
$prev_year = $year - 1;
$next_year = $year + 1;
$prev_month = $month - 1;
$next_month = $month + 1;
echo("<table width='100%' border='1' cellspacing='1' cellpadding='2'>
<form name='cal' action='$PHP_SELF' method='get'");
echo("<tr> <td colspan='7' align='right' class='day'> $year - $month </td> </tr>");
echo("<tr>
<td width='25' class='sunday'> Sun </td>
<td width='25' class='day'> Mon </td>
<td width='25' class='day'> Tue </td>
<td width='25' class='day'> Wed </td>
<td width='25' class='day'> Thu </td>
<td width='25' class='day'> Fri </td>
<td width='25' class='day'> Sat </td>
</tr><tr>");
//////////////////////////////////////////////////
for ($i = 0; $i < $first; $i++) // first space
echo("<td class='day'> </td>");
for ($i = 1; $i <= $days_cnt; $i++)
{
if ( get_date($year, $month, $i) != 0 )
echo ("<td class='day'> $i </td>");
else
echo ("<td class='sunday'> $i </td>");
if ( get_date($year, $month, $i) == 6 )
echo("</tr> <tr>");
}
for ($i = $last; $i < 6; $i++) // last space
echo("<td class='day'> </td>");
//////////////////////////////////////////////////
echo("</tr>");
}
if ( $year && $month && $day )
;
else // default get today {
$today = getdate();
$year = $today['year'];
$month = $today['mon'];
$day = $today['mday'];
}
print_month_table($year, $month, $day); ?>
|
|
|
Usage Example
|
|
|
Rate This Script
|
|
|
|