묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
테이블을 이용한 달력 소스 만드는 방법 좀...
2002.10.06 17:08
비혼님의 강의를 보면 달력 소스가 나와 있는데요,
정리는 잘되서 나옵니다만,
테이블로 꾸몄으면 해서요...
글구 오늘 날짜에 색깔도 좀 입혔으면 하는데,
죄송합니다만 부탁 좀 드리겠습니다...
끝까지 읽어주셔서 감사해요~ ^^;
정리는 잘되서 나옵니다만,
테이블로 꾸몄으면 해서요...
글구 오늘 날짜에 색깔도 좀 입혔으면 하는데,
죄송합니다만 부탁 좀 드리겠습니다...
끝까지 읽어주셔서 감사해요~ ^^;
if(!$year){
$year=date(Y);
$month_o=date(m);
$day=date(d);
$month=(int)$month_o;
}
$blank=date("w",mktime(0,0,0,$month,1,$year)); //현재달의 1일이 몇번재 요일인지 숫자로 뽑기
$day_count=0;
$allday = date("t",mktime(0,0,0,$month,1,$year)); // 해당달의 마지막날
//달력테이블 시작
echo "
<table width='460' height='' border cellpadding=1 cellspacing=0 bgcolor=white bordercolor=white bordercolorlight=f8e4ff>
<tr><td colspan=7 align=center>";
//전달로 이동 화살표
if($month!=1){
$Myear=$year;
$Mmonth=$month-1;
}
else{
$Myear=$year-1;
$Mmonth=12;
}
echo(" <a href=$PHP_SELF?month=$Mmonth&year=$Myear><font size=2>◀</font></a> ");
//현재 년도와 달 표시
echo $year." 년 ".$month." 월";
//다음달로 이동 화살표
if($month!=12){
$Nyear=$year;
$Nmonth=$month+1;
}
else{
$Nyear=$year+1;
$Nmonth=1;
}
echo(" <a href=$PHP_SELF?month=$Nmonth&year=$Nyear><font size=2>▶</font></a>");
echo "</td></tr>
<tr>
<td width='13%' height='10' bgcolor='f8e4ff'><center><font size=2 color=red>일</font></center></td>
<td width='12%' height='10' bgcolor='f8e4ff'><center><font size=2>월</font></center></td>
<td width='12%' height='10' bgcolor='f8e4ff'><center><font size=2>화</font></center></td>
<td width='12%' height='10' bgcolor='+ '+ 'f8e4ff'><center><font size=2>수</font></center></td>
<td width='12%' height='10' bgcolor='f8e4ff'> <center><font size=2>목</font></center></td>
<td width='12%' height='10' bgcolor='+ 'f8e4ff'><center><font size=2>금</font></center></td>
<td width='12%' height='10' bgcolor='f8e4ff'+ '> <center><font size=2 color=blue>토</font></center></td>
</tr><tr>";
//달력처음 1일이 있기까지 공백($blank)만큼 출력
for($num_blank=0;$num_blank<$blank;$num_blank++){
echo "<td height=50 > </td>";
}
for($num_blank2=$num_blank;$num_blank2<7;$num_blank2++){
$day_count++;
//날짜출력을 한번만 짜놓고 함수로 따로 불리해서 호출함
show($year,$month,$day_count);
}
echo "</tr>";
//<tr>을 몇번 돌릴것인지 달력의 첫줄빼고 tr이 4번 도는지 5번 도는지 그달의 전체일수에서 첫째줄에 쓴 날수 빼고
//7로 나누어 나머지가 4보다 같거나 작은면 4번만 돌리면 됨.크면 5번돌리고..
$allday_7=$allday-(7-$blank);
$allday_7=$allday_7/7;
if($allday_7<=4){$roof=4;}
else{$roof=5;}
//2째줄부터 달력 날짜 표시
//$roof 만큼 줄반복하기
for($i=0;$i<$roof;$i++){
echo "<tr>";
//1주일치 td 7번 반복하기
for($num_week=0;$num_week<7;$num_week++){
$day_count++;
if($day_count<=$allday){
//날짜출력을 함수로 따로 불리해서 한번만 짜놓고 호출함
show($year,$month,$day_count);
}
else {
echo "<td> </td>";}
}
echo "</tr>";
}
echo "</table>";
function show($year,$month,$day_count){
//일요일일경우 빨강색으로 표시
if(date("w",mktime(0,0,0,$month,$day_count,$year))==0){
$color_num="red";
$color_bak="white";}
//토요일일경우에는 파랑색으로 표시
else if(date("w",mktime(0,0,0,$month,$day_count,$year))==6){
$color_num="blue";
$color_bak="white";}
//평일이면 검정색으로 표시
else {
$color_num="#353535";
$color_bak="white";}
if($day_count==date(d)&&$month==date(m)&&$year==date(Y)){
$color_num="#F700F0";
$color_bak="white";}
echo "<td height='50' color=$color_bak valign='top'><a href='#'><font color=$color_num>$day_count</font></a></td>";
}
?>
출처: 김희대
Written date/time: 2002-10-07 09:45:45
http://cm.zetyx.net/