<?php
$year    = $_GET['year'];
$month    = $_GET['month'];
$day    = $_GET['day'];
if(!$year)    $year    = date("Y", time());
if(!$month)    $month    = date("m", time());
if(!$day)    $day    = date("d", time());
?>
<table border='1' width='100%' align='center'>
<tr>
<td width='14%' align='center'>
sun
</td>
<td width='14%' align='center'>
mon
</td>
<td width='14%' align='center'>
tue
</td>
<td width='14%' align='center'>
wed
</td>
<td width='14%' align='center'>
the
</td>
<td width='14%' align='center'>
fri
</td>
<td width='14%' align='center'>
sat
</td>
</tr>
<?php
$startStamp    = mktime(0,0,0,$month,1,$year);
$startCal    = getdate($startStamp);
$startWday    = $startCal['wday'];
for($i=0,$w=1;$i<50;$i++)
{
    if($i==0 || $i%7 == 0)
    {
        echo "<tr>";
    }
    echo "<td>";
    if($i==$startWday)
    {
        $flag = "on";
    }
    if($w > 27)
    {
        if(checkdate ($month,$w,$year))
        {
            $flag = "on";
        }
        else
        {
            $flag = "off";
        }
    }
    if($flag == "on")
    {
        echo $w. "</td>";
        $w++;    
    }
    else
    {
        echo " </td>";
    }
    if($i%7 == 6 && $i!=0)
    {
        echo "</tr>";
        if($flag == "off")
            break;
    }

}
?>
</table>

,