戻る

解答例

PHP

<?php
header("Content-type: text/html; charset=utf-8");

date_default_timezone_set("Asia/Tokyo");

//その月の1日のタイムスタンプを取得
//ここで何年何月のカレンダーを作るか設定
$startday = mktime(0,0,0,9,1,2006);

//その月の1日の曜日を取得
$startweek = date("w", $startday);

//その月の末日を取得
$daycnt = date("t", $startday);

//曜日名の行
$body = "<table border=\"1\">";
$body .= "<tr>";
$body .= "<td>日</td>";
$body .= "<td>月</td>";
$body .= "<td>火</td>";
$body .= "<td>水</td>";
$body .= "<td>木</td>";
$body .= "<td>金</td>";
$body .= "<td>土</td>";
$body .= "</tr>";

$body .= "<tr>";

//1日より前の空欄となる曜日のセル
$weekcnt = 0;
while($weekcnt <> $startweek){
	$body .= "<td> </td>";
	$weekcnt++;
}

//1日~末日までの日付の出力
for($daynum = 1; $daynum <= $daycnt; $daynum++){
	$body .= "<td>";
	if((date("Y/m", $startday) . "/{$daynum}") == date("Y/m/j")){
		//今日なら文字を赤にする
		$body .= "<span sytle=\"color:red\"><b>" . $daynum . "</b></span>";
	}
	else{
		$body .= $daynum;
	}
	
	$body .= "</td>";
	
	//曜日が土曜なら折り返して次の行へ
	if($weekcnt++ == 6){
		
		$body .= "</tr>";
		if($daynum < $daycnt){
			$body .= "<tr>";
		}
		//曜日を日曜に戻す
		$weekcnt = 0;
	}
}

//月末日より後ろの空欄となる曜日のセル
while($weekcnt > 0 and $weekcnt <= 6){
	$body .= "<td> &</td>";
	$weekcnt++;
}

$body .= "</table>";

?>
<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?=$body?>
</body>
</html>

inserted by FC2 system