|
<?
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 border=1 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(" ");
}
}
# 曜日別の配色の為、カレントの日の曜日を得る
$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(" ");
}
# 最終日の場合は行が終了
$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>
| |