오늘 참 글 많이 적는 것 같네요-_-;
보통 이렇게 글을 많이 적어보기는 처음인듯;;
세부적으로 주석을 다 달아놨어요 보면 쉽게 이해할듯
그러니 특별히 이번은 설명 생략!!
<link rel="stylesheet" href="car.css">
<?php
extract($_GET);
extract($_POST);
extract($_SERVER);
//===================================================================
// Calendar() 함수
//===================================================================
function Calendar() {
global $currYear,$currMonth,$currDay;
$days = array("일", "월", "화", "수", "목", "금", "토");
$months = array
("", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월");
// 각 달의 날(day)의 수
$totalDays = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if(!$currYear) { $currYear = date("Y"); } // 년도
if(!$currMonth) { $currMonth = date("n"); } // 달
if(!$currDay) { $currDay = date("j"); } // 일
// 윤년에는 28일을 29일로 수정! 2004년,2008년에 29일 --> 2월
if (date("L", mktime(0,0,0,$currMonth,1,$currYear)))
{
$totalDays[2] = 29;
}
$prevMonth = $currMonth-1;
$prevYear = $currYear;
if ($prevMonth < 1)
{
$prevMonth=12;
$prevYear--;
}
$nextMonth = $currMonth+1;
$nextYear = $currYear;
if ($nextMonth > 12)
{
$nextMonth=1;
$nextYear++;
}
// 이번달의 첫번째 요일 구하기
$firstDayOfMonth = date("w", mktime(0,0,0,$currMonth,1,$currYear));
$x=0;
?>
<table border="0" cellpadding="2" cellspacing="5">
<!-- 달 출력하기 , 이동 하기 -->
<tr>
<td>
<a href="<? echo $PHP_SELF; ?>?currMonth=<? echo $prevMonth; ?>&currYear=<? echo $prevYear; ?>"><<
</a></td>
<td colspan="5" align="CENTER"><b>
<? echo $currYear."년 " .$months[$currMonth] ; ?></b></td>
<td><a href="<? echo $PHP_SELF; ?>?currMonth=<? echo $nextMonth; ?>&currYear=<? echo $nextYear; ?>">>></a></td>
</tr>
<tr>
<?
// 요일 출력 하기
for ($x=0; $x<7; $x++)
{
echo "<td>" . substr($days[$x],0,3) . "</td>";
}
?>
</tr>
<tr>
<?
// 이달의 첫번째 날 출력 하기 - 첫번째 날이 나올때 까지 공백 출력
for ($x=1; $x<=$firstDayOfMonth; $x++)
{
$rowCount++;
echo "<td> </td>\n";
}
$dayCount=1;
while ($dayCount <= $totalDays[$currMonth])
{
if ($rowCount % 7 == 0) // 1주일 씩 나누어야 하므로
{
echo "</tr>\n<tr>\n";
}
if ($dayCount == date("j") && $currYear == date("Y") && $currMonth == date("n")) // 오늘 인 경우
{
echo "<td align=center bgcolor=#F3F3F3><a href=$PHP_SELF?currYear=" . $currYear . "&currMonth=" . $currMonth . "&currDay=" . $dayCount . "><b>" . $dayCount. "</b></a>";
}else if ($dayCount == $currDay) // 선택한 날 인 경우
{
echo "<td align=center bgcolor=#F1FCFE><b>" . $dayCount. "</b>";
}else{ // 오늘이 아닌 경우
echo "<td align=center><a href=$PHP_SELF?currYear=" . $currYear . "&currMonth=" . $currMonth . "&currDay=" . $dayCount . ">" . $dayCount . "</a>";
}
echo "</td>\n";
$dayCount++;
$rowCount++;
} // end while
?>
</tr>
</table>
<?
} // end function Calendar()
##### 달력 보여주기
Calendar();
?>
샘플

car.css
이올린에 북마크하기