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

달력 소스

페이지 정보

작성자 MintState 댓글 0건 조회 13,606회 작성일 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건 1 페이지
PHP 목록
번호 제목 글쓴이 조회 날짜
165 MintState 5737 05-17
164 MintState 6464 05-11
163 MintState 6527 04-05
162 MintState 6667 04-03
161 MintState 8591 01-18
160 MintState 7307 08-08
159 MintState 10729 07-31
158 MintState 8255 05-29
157 MintState 7309 02-22
156 MintState 8658 02-21
155 MintState 12622 11-12
154 MintState 9720 12-08
153 MintState 13504 02-26
152 MintState 17762 01-22
151 MintState 11994 07-27
150 MintState 14246 02-10
열람중 MintState 13607 10-21
148 MintState 17871 05-02
147 MintState 22418 04-18
146 MintState 15204 04-17
145 MintState 15627 04-17
144 MintState 14859 03-14
143 MintState 16567 03-04
142 MintState 17250 01-18
141 MintState 20470 07-02
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2024, YesYo.com MintState. ™