メニュー 表示 非表示

簡易カレンダー@PHP

簡易カレンダーです。
無駄な処理が多い気がします。

簡易カレンダー


<?php

$next = strip_tags($_GET['next']);

//現在日付を取得
$systemDate = getDate();
$sysYear = $systemDate[year];
$sysMon = $systemDate[mon];
$sysDay = $systemDate[mday];
$sysWeek = $systemDate[wday];


//現在日付を退避(カレンダー表示用)
$nowYear = $systemDate[year];
$nowMon = $systemDate[mon];
$nowDay = $systemDate[mday];

//$nextが指定されていた場合
if ($next != "") {
    $arr = explode(".",$next);
    $sysYear = $arr[0];
    $sysMon = $arr[1];
    $sysDay = 1;
    $sysWeek = date("w",mktime(0,0,0,$sysMon,$sysDay,$sysYear));
}


//今月の日付数
$days = date("d", mktime(0, 0, 0, $sysMon+1, 0, $sysYear));

//前月、来月を取得
$lastMoth = date("Y.m", mktime(0, 0, 0, $sysMon-1, 1, $sysYear));
$nextMoth = date("Y.m", mktime(0, 0, 0, $sysMon+1, 1, $sysYear));


print "<a href='./calendar.php?next=$lastMoth'><<</a> ";
print $sysYear . "年" . $sysMon . "月 ";
print "<a href='./calendar.php?next=$nextMoth'>>></a>";

//曜日を表示
print <<<END
<table border='1' cellspan='0' cellspacing='0'>
<tr>
    <td bgcolor='#FFCCFF'>日</td>
    <td bgcolor='#99CCFF'>月</td>
    <td bgcolor='#99CCFF'>火</td>
    <td bgcolor='#99CCFF'>水</td>
    <td bgcolor='#99CCFF'>木</td>
    <td bgcolor='#99CCFF'>金</td>
    <td bgcolor='#99CCFF'>土</td>
</tr>
END;


//日付を表示

//日付を表示するのに使用
$dispDay = 0;
//一日目を表示するのに使用
$firstFlg = 1;

//6行、7列固定
for ($j=0;$j<6;$j++) {
    print "<tr>";
    for ($k=0;$k<7;$k++) {
        //今日の色付け処理
        if (($sysYear == $nowYear) && ($sysMon == $nowMon) && ($dispDay == ($nowDay-1))) {
            print "<td bgcolor='#FFCCFF'>";        
        } else {
            print "<td>";
        }

        //一日目の表示曜日の判断
        if ($firstFlg && ($k == $sysWeek)) {
            $firstFlg = 0;
        }
        
        //日付の表示
        //一日目から月の日付日数内ならば、
        //dispDayを増やして表示
        if (($firstFlg == 0) && ($dispDay < $days)) {
            $dispDay++;
            print $dispDay;
        } else {
            //それ以外なら空文字を表示
            print "&nbsp;";
        }
        print "</td>";
    }
    print "</tr>";
}
print "</table>";

?>


Copyright (C) PHPのお勉強. All Rights Reserved.