参照可能なソースコード

  CALENDAR.PHP



  
<?
require_once( "common.php" );
require_once( "db.php" );

$style = "style.php";
$title = "カレンダー";
# **********************************************************
# 画面表示前のサーバ側の処理
# **********************************************************

# 初期画面の処理
if ( $_ENV['REQUEST_METHOD'] == 'GET' ) {
	if ( $_GET['Nen'] == '' ) {
		$Nen_sel[date( "Y" )]	= "selected";
		$Mm_sel[date( "n" )]	= "selected";

		# 以降の処理を共通にする為
		$_POST['Nen']	= date( "Y" );
		$_POST['Mm']	= date( "n" );
	}
	else {
		$_POST['Nen']	= $_GET['Nen'];
		$_POST['Mm']	= $_GET['Mm'];

		$Nen_sel[$_POST['Nen']]	= "selected";
		$Mm_sel[$_POST['Mm']]	= "selected";
	}
}
# 画面から送信時の処理
else {
	$Nen_sel[$_POST['Nen']]	= "selected";
	$Mm_sel[$_POST['Mm']]	= "selected";
}

# 各月の末日をセットした配列の取得
$MONTH_ARRAY	= GetMonthArray($_POST['Nen']);
# 表示する月の末日を取得
$MONTH_END		= $MONTH_ARRAY[$_POST['Mm']];

# カレンダーテーブルの作成
$CAL .= "<TABLE  cellpadding=5>";

# タイトル部分
$CAL .= Th("日") . Th("月") . Th("火") . Th("水");
$CAL .= Th("木") . Th("金") . Th("土");

# 日付部分の行を開始
$CAL .= "<TR>";
# 初期フラグ
$First = TRUE;

# 1日より末日までのループ
for( $i = 1; $i <= $MONTH_END; $i++) {

	# 初回は、1日の曜日まで空白フィールドを作成
	if ( $First ) {
		$First = FALSE;
		# 1日の曜日を得る
		$FIRST_DAY = date("w", mktime(0,0,0,$_POST['Mm'],1,$_POST['Nen']) );
		# 1日まで空白フィールドを作成
		for( $j = 0; $j < $FIRST_DAY; $j++ ) {
			$CAL .= Td("&nbsp;");
		}
	}

	# 曜日別の配色の為、カレントの日の曜日を得る
	$CUR_DAY = date("w", mktime(0,0,0,$_POST['Mm'],$i,$_POST['Nen']) );

	# 日付
	$CUR_DATE = sprintf( "%02d%02d%02d", $_POST['Nen'], $_POST['Mm'], $i );
	$OPTION = "onClick='parent.document.all.item(";
	$OPTION .= Dd("TargetDate");
	$OPTION .= ").value=";
	$OPTION .= Dd( $CUR_DATE );
	$OPTION .= "'";
	$LINK = Alink( "#", $i, $OPTION );
	switch( $CUR_DAY ) {
		# 日曜
		case 0:
			$CAL .= Td( $i, "class=DAY_SUN" );
			break;
		# 土曜
		case 6:
			$CAL .= Td( $LINK, "class=DAY_SAT" );
			break;
		# 通常
		default:
			$CAL .= Td( $LINK, "class=DAY_NORMAL" );
			break;
	}

	# 土曜日の場合
	if ( $CUR_DAY == 6 ) {
		# 最終日の場合は行が終了
		if ( $i == $MONTH_END ) {
			$CAL .= "</TR>\n";
		}
		# 通常は、次の行が開始される
		else {
			$CAL .= "</TR>\n<TR>";
		}
	}
	# 日曜〜金曜
	else {
		# 最終日の場合は土曜まで空白フィールドを作成
		if ( $i == $MONTH_END ) {
			for( $j = $CUR_DAY; $j < 6; $j++ ) {
				$CAL .= Td("&nbsp;");
			}
			# 最終日の場合は行が終了
			$CAL .= "</TR>\n";
		}
	}

}
$CAL .= "</TABLE>";

# **********************************************************
# 該当年の各月の最終日をセットした配列を返す
# **********************************************************
function GetMonthArray( $TargetNen ) {

	$Month[1]	= 31;
	$Month[3]	= 31;
	$Month[4]	= 30;
	$Month[5]	= 31;
	$Month[6]	= 30;
	$Month[7]	= 31;
	$Month[8]	= 31;
	$Month[9]	= 30;
	$Month[10]	= 31;
	$Month[11]	= 30;
	$Month[12]	= 31;

	if ( checkdate ( 2, 29, (int)$TargetNen ) ) {
		$Month[2] = 29;
	}
	else {
		$Month[2] = 28;
	}

	return $Month;

}

# **********************************************************
# クライアント側に表示される画面
# **********************************************************
?>
<SCRIPT language=JavaScript>
</SCRIPT>

<HTML>
<HEAD>
<STYLE type="text/css">
	.DAY_NORMAL {
		text-align:center;
	}

	.DAY_SUN {
		color:red;
		font-weight:bold;
		text-align:center;
	}

	.DAY_SAT {
		color:blue;
		font-weight:bold;
		text-align:center;
	}

</STYLE>
<? require_once( "style.php" ) ?>
<?= HtmlCharset( "Shift_JIS" ); ?>
</HEAD>
<BODY>
<? DispTitle( $title ) ?>
<!-- *******************************************************
 送信フォーム
******************************************************** -->
<FORM
	name=frmMain
	method=get
	action=<?= $_SERVER['SCRIPT_NAME'] ?>
>

	年
	<SELECT name=Nen>
	<OPTION value=2000 <?= $Nen_sel[2000] ?>>2000
	<OPTION value=2001 <?= $Nen_sel[2001] ?>>2001
	<OPTION value=2002 <?= $Nen_sel[2002] ?>>2002
	<OPTION value=2003 <?= $Nen_sel[2003] ?>>2003
	<OPTION value=2004 <?= $Nen_sel[2004] ?>>2004
	</SELECT>

	月
	<SELECT name=Mm>
	<OPTION value=1 <?= $Mm_sel[1] ?>>1
	<OPTION value=2 <?= $Mm_sel[2] ?>>2
	<OPTION value=3 <?= $Mm_sel[3] ?>>3
	<OPTION value=4 <?= $Mm_sel[4] ?>>4
	<OPTION value=5 <?= $Mm_sel[5] ?>>5
	<OPTION value=6 <?= $Mm_sel[6] ?>>6
	<OPTION value=7 <?= $Mm_sel[7] ?>>7
	<OPTION value=8 <?= $Mm_sel[8] ?>>8
	<OPTION value=9 <?= $Mm_sel[9] ?>>9
	<OPTION value=10 <?= $Mm_sel[10] ?>>10
	<OPTION value=11 <?= $Mm_sel[11] ?>>11
	<OPTION value=12 <?= $Mm_sel[12] ?>>12
	</SELECT>

	<INPUT
		name=Send
		type=submit
		value="送信"
	>

	<HR size=1 color=black>

	<?= $CAL ?>

</FORM>
</BODY>
</HTML>
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ