<html>
<head>
    <title>wan nian li</title>
    <meta http-equiv="content-type" content="text/html;" charset="GB2312">
    <!-- style -->
    <style type="text/css">
        <!--
        table
        {
            background-color: #b0c4de;
        }

        tr
        {
            background-color: white;
        }

        td
        {
            font-size: 20pt;
            font-family: "宋体";
            color: #708090;
            line-height: 140%;
        }
        -->
    </style>
</head>
<body>
<?php
    //判断年的值是否设置,并且是数值类型
    if(isset($_POST["year"]) && is_numeric($_POST["year"]))
    {
        $year = $_POST["year"];
    }
    else
    {
        $year = date("Y");
    }
    //判断月的值是否设置,并且是数值类型
    if(isset($_POST["month"]) && is_numeric($_POST["year"]))
    {
        $month = $_POST["month"];
    }
    else
    {
        $month = date("m");
    }
    //天的初始值
    $date = 01;
    //用来判断月初1号是星期几,同时用作第几天
    $day = 01;
    //每周换行
    $off = 0;
    //检查年份范围
    if($year < 0 || $year > 9999)
    {
        echo "<script>alert('year should between 1 to 9999!');history.go(-1);</script>";
        exit();
    }
    //检查月份范围
    if ($month < 0 || $month > 12)
    {
        echo "<script>alert('month should between 1 to 12!');history.go(-1);</script>";
        exit();
    }
    //核查日期是否有效
    while(checkdate($month,$date,$year))
    {
        $date++;
    }

?>
<form method="post" action="" name="calendar">
    <table width="60%" border="1" cellspacing="0" cellpadding="2" bordercolorlight="#333333" bordercolordark="#ffffff" bgcolor="#cccccc" style="margin: 0 auto;">
        <tr align="center" valign="middle">
            <td colspan="7" bgcolor="#efefef">
                <input type="text" name="year" id="year" size="4" maxlength="4" value='<?= $year?>'>
                <input type="text" name="month" id="month" size="2" maxlength="2" value='<?= $month?>'>
                <input type="submit" name="submit" align="absmiddle" border="0" value="turn">
            </td>
        </tr>
        <tr align="center" valign="middle">
            <td bgcolor="#efefef">7</td>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
            <td>5</td>
            <td bgcolor="#efefef">6</td>
        </tr>
        <tr align="center" valign="middle">
            <?php
            //循环,天数是否有效
            while($day < $date)
            {
                //当天
                if($day == date("d") && $year == date("Y") && $month == date("m"))
                {
                    $day_color = "color='red'";
                    $today = true;
                }
                //其他天
                else
                {
                    $day_color = "color='black'";
                    $today = false;
                }
                //月初1号,是周日
                if($day == '01' && (date('l',mktime(0,0,0,$month,$day,$year))== 'Sunday'))
                {
                    echo "<td><font $day_color>$day</font></td>";
                    $off = '01';
                }
                //月初1号,是周二
                elseif ($day == '01' && (date('l',mktime(0,0,0,$month,$day,$year)) == 'Monday'))
                {
                    echo "<td>&nbsp;</td><td><font $day_color>$day</font></td>";
                    $off = '02';
                }
                elseif($day == '01' && (date('l',mktime(0,0,0,$month,$day,$year)) == 'Tuesday'))
                {
                    echo "<td>&nbsp;</td><td>&nbsp;</td><td><font $day_color>$day</font></td>";
                    $off = '03';
                }
                elseif($day == '01' && (date('l',mktime(0,0,0,$month,$day,$year)) == 'Wednesday'))
                {
                    echo "<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td><font $day_color>$day</font></td>";
                    $off = '04';
                }
                elseif($day == '01' && (date('l',mktime(0,0,0,$month,$day,$year)) == 'Thursday'))
                {
                    echo "<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td><font $day_color>$day</font></td>";
                    $off = '05';
                }
                elseif($day == '01' && (date('l',mktime(0,0,0,$month,$day,$year)) == 'Friday'))
                {
                    echo "<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td><font $day_color>$day</font></td>";
                    $off = '06';
                }
                elseif($day == '01' && (date('l',mktime(0,0,0,$month,$day,$year)) == 'Saturday'))
                {
                    echo "<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td><font $day_color>$day</font></td>";
                    $off = '07';
                }
                //非月初1号,其他天数
                else
                {
                    if($today)
                    {
                        echo "<td bgcolor='#efefef'><font $day_color>$day</font></td>";
                    }
                    else
                    {
                        echo "<td><font $day_color>$day</font></td>";
                    }

                }
                //天数后移
                $day++;
                //一周是否走完
                $off++;
                //每周换行
                if($off > 7)
                {
                    echo "</tr><tr align='center' valign='middle'>";
                    $off = '01';
                }
            }
            //当月剩余填充空格
            for ($i=$off;$i<=7;$i++)
            {
                echo "<td>&nbsp;</td>";
            }
            ?>
        </tr>
    </table>
</form>
</body>
</html>