YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > PHP
검색
멤버이름    오토
비밀번호 
 

달력 소스

페이지 정보

작성자 MintState 댓글 0건 조회 13,336회 작성일 11-10-21 11:48

본문

달력 소스

달력소스는 거의다 비슷비슷 합니다.
그중 하나를 소개 합니다. 참고 하셔서 프로그램 하시면 될것 같네요.

<? 
/****************************** 
                  달력 
******************************/
/********** 사용자 설정값 **********/ 
$startYear = 2007; 
$endYear = date( "Y" ) + 4; 

/********** 입력값 **********/ 
$year = ( $_GET['toYear'] )? $_GET['toYear'] : date( "Y" ); 
$month = ( $_GET['toMonth'] )? $_GET['toMonth'] : date( "m" ); 
$doms = array( "일", "월", "화", "수", "목", "금", "토" ); 

/********** 계산값 **********/ 
$mktime = mktime( 0, 0, 0, $month, 1, $year ); // 입력된 값으로 년-월-01을 만든다 
$days = date( "t", $mktime ); // 현재의 year와 month로 현재 달의 일수 구해오기 
$startDay = date( "w", $mktime ); // 시작요일 알아내기 

// 지난달 일수 구하기 
$prevDayCount = date( "t", mktime( 0, 0, 0, $month, 0, $year ) ) - $startDay + 1; 

$nowDayCount = 1; // 이번달 일자 카운팅 
$nextDayCount = 1; // 다음달 일자 카운팅 

// 이전, 다음 만들기 
$prevYear = ( $month == 1 )? ( $year - 1 ) : $year; 
$prevMonth = ( $month == 1 )? 12 : ( $month - 1 ); 
$nextYear = ( $month == 12 )? ( $year + 1 ) : $year; 
$nextMonth = ( $month == 12 )? 1 : ( $month + 1 ); 

// 출력행 계산 
$setRows = ceil( ( $startDay + $days ) / 7 ); 
?> 
<!---------- 달력 출력 ---------->
<center>
<table style="border-collapse:collapse;">
<form method="get">
<tr>
	<td style="padding:10;border-width:1;border-style:solid;">
		<select name="toYear" onchange="submit();">
		<? for( $i = $startYear; $i < $endYear; $i++ ) { ?> 
			<option value="<?=$i?>" <?=($i==$year)?"selected":""?>><?=$i?></option> 
		<? } ?> 
		</select>년 
		<select name="toMonth" onchange="submit();"> 
		<? for( $i = 1; $i <= 12; $i++ ) { ?> 
			<option value="<?=$i?>" <?=($i==$month)?"selected":""?>><?=$i?></option> 
		<? } ?> 
		</select>월 
	</td>
</tr>
</form>
</table>
<br>
<table style="border-collapse:collapse;">
<tr>
	<td style="padding:10;border-width:1;border-style:solid;">
		<input type="button" onclick="location.href='<?=$_SERVER['PHP_SELF']?>?toYear=<?=$prevYear?>&toMonth=<?=$prevMonth?>'" value=" << ">
		<?=$year?>년 <?=$month?>월
		<input type="button" onclick="location.href='<?=$_SERVER['PHP_SELF']?>?toYear=<?=$nextYear?>&toMonth=<?=$nextMonth?>'" value=" >> ">
	</td>
</tr>
</table>
<br>
<table cellpadding=0 cellspacing=0 style="border-collapse:collapse;"> 
<tr>
<?
for( $i = 0; $i < count( $doms ); $i++ ) {
?> 
	<td align="center" style="padding:6;border-width:1;border-style:solid;"><?=$doms[$i]?>요일</td> 
<?
}
?> 
</tr>

<?
for( $rows = 0; $rows < $setRows; $rows++ ) {
?> 
<tr>
<? 
		for( $cols = 0; $cols < 7; $cols++ ) { 
				// 셀 인덱스 만들자 
				$cellIndex    = ( 7 * $rows ) + $cols; 
?> 

<? 
				// 이번달이라면 
				if ( $startDay <= $cellIndex && $nowDayCount <= $days ) {
?> 
	<td align="center" style="padding:6;border-width:1;border-style:solid;">
<?
						if ( date( "w", mktime( 0, 0, 0, $month, $nowDayCount, $year ) ) == 6 ) {
?> 
		<b><font color="blue"><?=$nowDayCount++?></font></b>
<?
						} else if ( date( "w", mktime( 0, 0, 0, $month, $nowDayCount, $year ) ) == 0 ) {
?> 
		<b><font color="red"><?=$nowDayCount++?></font></b>
<?
						} else {
?> 
		<b><?=$nowDayCount++?></b>
<?
						}
?> 
	</td>

<? 
				// 이전달이라면 
				} else if ( $cellIndex < $startDay ) {
?> 
	<td align="center" style="padding:6;border-width:1;border-style:solid;">
		<font color="gray"><b><?=$prevDayCount++?></b></font>
	</td>
<? 
				// 다음달 이라면 
				} else if ( $cellIndex >= $days ) {
?> 
	<td align="center" style="padding:6;border-width:1;border-style:solid;">
		<font color="gray"><b><?=$nextDayCount++?></b></font>
	</td>
<?
				} 
		} 
?> 
</tr>
<?
}
?>
</table>
</center>



추가 : 달력 소스 하나 추가 합니다.
calendar.zip 출처는  http://dev.previl.net
첨부 파일
파일 종류: php calendar.php (3.8K, 9 views)
파일 종류: zip calendar.zip (6.9K, 57 views)

댓글목록

등록된 댓글이 없습니다.

Total 165건 4 페이지
PHP 목록
번호 제목 글쓴이 조회 날짜
90 MintState 14448 11-03
89 MintState 14424 10-31
88 MintState 14393 11-03
87 MintState 14382 11-03
86 MintState 14372 11-03
85 MintState 14337 11-03
84 MintState 14310 11-10
83 MintState 13940 02-10
82 MintState 13877 11-17
81 MintState 13751 11-03
80 MintState 13730 10-31
79 MintState 13609 10-29
78 MintState 13587 11-03
77 MintState 13536 11-03
76 MintState 13499 11-03
75 MintState 13438 02-25
74 MintState 13437 10-29
73 MintState 13413 10-28
72 MintState 13397 11-03
열람중 MintState 13337 10-21
70 MintState 13314 10-31
69 MintState 13308 11-10
68 MintState 13216 02-26
67 MintState 13172 11-03
66 MintState 13048 10-28
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2024, YesYo.com MintState. ™