- ご購入について
- ブログ
- 相互リンク集
- お客様からのお写真
- 会社概要
//みなみーズテストぷろぐらむ
function Fix_Syukuday($inp_year, $inp_month, $inp_day) {
//固定日の祝日を判定
//戻り値 0:祝日ではない 1以上:祝日 -1:エラー
$fix_syuku_date[1] = "101"; //元旦
$fix_syuku_date[2] = "115"; //元旦
$fix_syuku_date[3] = "211"; //建国記念の日
$fix_syuku_date[5] = "429"; //みどりの日
$fix_syuku_date[6] = "503"; //憲法記念日
$fix_syuku_date[7] = "505"; //こどもの日
$fix_syuku_date[8] = "720"; //海の日
$fix_syuku_date[9] = "915"; //敬老の日
$fix_syuku_date[11] = "1010"; //体育の日
$fix_syuku_date[12] = "1103"; //文化の日
$fix_syuku_date[13] = "1123"; //勤労感謝の日
$fix_syuku_date[14] = "1223"; //天皇誕生日
$fix_syuku_start_year[1][0] = "1949"; //元旦
$fix_syuku_start_year[1][1] = "9999"; //元旦
$fix_syuku_start_year[2][0] = "1949"; //成人の日
$fix_syuku_start_year[2][1] = "1999"; //成人の日
$fix_syuku_start_year[3][0] = "1967"; //建国記念の日
$fix_syuku_start_year[3][1] = "9999"; //建国記念の日
$fix_syuku_start_year[5][0] = "1949"; //みどりの日
$fix_syuku_start_year[5][1] = "9999"; //みどりの日
$fix_syuku_start_year[6][0] = "1949"; //憲法記念日
$fix_syuku_start_year[6][1] = "9999"; //憲法記念日
$fix_syuku_start_year[7][0] = "1949"; //こどもの日
$fix_syuku_start_year[7][1] = "9999"; //こどもの日
$fix_syuku_start_year[8][0] = "1996"; //海の日
$fix_syuku_start_year[8][1] = "2002"; //海の日
$fix_syuku_start_year[9][0] = "1966"; //敬老の日
$fix_syuku_start_year[9][1] = "2002"; //敬老の日
$fix_syuku_start_year[11][0] = "1966"; //体育の日
$fix_syuku_start_year[11][1] = "1999"; //体育の日
$fix_syuku_start_year[12][0] = "1948"; //文化の日
$fix_syuku_start_year[12][1] = "9999"; //文化の日
$fix_syuku_start_year[13][0] = "1949"; //勤労感謝の日
$fix_syuku_start_year[13][1] = "9999"; //勤労感謝の日
$fix_syuku_start_year[14][0] = "1989"; //天皇誕生日
$fix_syuku_start_year[14][1] = "9999"; //天皇誕生日
//戻り値用の変数を初期化
$return_flg = 0;
//入力値が祝日日付にあるかどうかチェック
$syuku_date_tmp = 100 * $inp_month + $inp_day;
if (array_search($syuku_date_tmp, $fix_syuku_date)) {
//祝日日付が見つかった場合年をチェック
$return_flg = array_search($syuku_date_tmp, $fix_syuku_date);
if ($fix_syuku_start_year[$return_flg][0] <= $inp_year && $fix_syuku_start_year[$return_flg][1] >= $inp_year) {
//範囲内の場合はそのまま
} else {
//範囲外の場合は祝日とはしない
$return_flg = 0;
}
}
return $return_flg;
}
function Other_Syukuday($inp_year, $inp_month, $inp_day) {
//第*週の祝日を判定
//戻り値 0:祝日ではない 1以上:祝日 -1:エラー
$other_syuku_date[2] = "1-2"; //成人の日(月-*週)
$other_syuku_date[8] = "7-3"; //海の日(月-*週)
$other_syuku_date[9] = "9-3"; //敬老の日(月-*週)
$other_syuku_date[11] = "10-2"; //体育の日(月-*週)
$other_syuku_start_year[2][0] = "2000"; //成人の日
$other_syuku_start_year[2][1] = "9999"; //成人の日
$other_syuku_start_year[8][0] = "2003"; //海の日
$other_syuku_start_year[8][1] = "9999"; //海の日
$other_syuku_start_year[9][0] = "2003"; //海の日
$other_syuku_start_year[9][1] = "9999"; //海の日
$other_syuku_start_year[11][0] = "2000"; //体育の日
$other_syuku_start_year[11][1] = "9999"; //体育の日
//月曜日判定用固定値(第1月曜日の日付をセット)
$mondy_rel[0] = 2;
$mondy_rel[1] = 1;
$mondy_rel[2] = 7;
$mondy_rel[3] = 6;
$mondy_rel[4] = 5;
$mondy_rel[5] = 4;
$mondy_rel[6] = 3;
//戻り値用の変数を初期化
$return_flg = 0;
foreach($other_syuku_date as $key => $value) {
//値を分割する
$month_week_tmp = explode("-",$value);
//祝日日付を算出
$first_day_w = date("w",mktime(0,0,0,$month_week_tmp[0],1,$inp_year));
$syuku_date_tmp = 100 * $month_week_tmp[0] + ($mondy_rel[$first_day_w]+($month_week_tmp[1]-1)*7);
//入力値を変換
$inp_syuku_date = 100 * $inp_month + $inp_day;
//年月が一致するかどうか
if ($syuku_date_tmp == $inp_syuku_date) {
//年が範囲内かどうか
if ($other_syuku_start_year[$key][0] <= $inp_year && $other_syuku_start_year[$key][1] >= $inp_year) {
$return_flg = $key;
break;
}
}
}
return $return_flg;
}
function Spring_Syukuday($inp_year, $inp_month, $inp_day) {
//春分の日を判定
//春分の日計算用固定値
$spring_day_1[0] = 19.8277;
$spring_day_1[1] = 20.8357;
$spring_day_1[2] = 20.8431;
$spring_day_2[0] = 1983;
$spring_day_2[1] = 1983;
$spring_day_2[2] = 1980;
//戻り値用の変数を初期化
$return_flg = 0;
if ($inp_year >= 1949) {
//年によって計算式に使用する値を変えるためのフラグをセット
if ($inp_year >= 1851 && $inp_year <= 1899) {
$spring_day_flg = 0;
} elseif ($inp_year >= 1900 && $inp_year <= 1979) {
$spring_day_flg = 1;
} else {
$spring_day_flg = 2;
}
//春分の日算出
$spring_day = floor($spring_day_1[$spring_day_flg] + 0.242194*($inp_year - 1980) - floor(($inp_year - $spring_day_2[$spring_day_flg])/4));
$spring_day = 3 * 100 + $spring_day;
//入力値を変換
$inp_syuku_date = 100 * $inp_month + $inp_day;
if ($inp_syuku_date == $spring_day) {
$return_flg = 4;
}
}
return $return_flg;
}
function Autumn_Syukuday($inp_year, $inp_month, $inp_day) {
//秋分の日を判定
//秋分の日計算用固定値
$autumn_day_1[0] = 22.2588;
$autumn_day_1[1] = 23.2588;
$autumn_day_1[2] = 23.2488;
$autumn_day_2[0] = 1983;
$autumn_day_2[1] = 1983;
$autumn_day_2[2] = 1980;
//戻り値用の変数を初期化
$return_flg = 0;
if ($inp_year >= 1949) {
//年によって計算式に使用する値を変えるためのフラグをセット
if ($inp_year >= 1851 && $inp_year <= 1899) {
$autumn_day_flg = 0;
} elseif ($inp_year >= 1900 && $inp_year <= 1979) {
$autumn_day_flg = 1;
} else {
$autumn_day_flg = 2;
}
//秋分の日算出
$autumn_day = floor($autumn_day_1[$autumn_day_flg] + 0.242194*($inp_year - 1980) - floor(($inp_year - $autumn_day_2[$autumn_day_flg])/4));
$autumn_day = 9 * 100 + $autumn_day;
//入力値を変換
$inp_syuku_date = 100 * $inp_month + $inp_day;
if ($inp_syuku_date == $autumn_day) {
$return_flg = 10;
}
}
return $return_flg;
}
function Date_Weekday($inp_year, $inp_month, $inp_day) {
//曜日・祝日をDB使わず出してみよう
//引数
//$inp_year 入力年、$inp_month 入力月、$inp_day 入力日
//戻り値($return_flg)
//1〜5 平日(月〜金)、6 土曜日、0 日曜日、7 祝日、-1 エラー
//祝日名固定値
$syuku_name[1] = "元旦";
$syuku_name[2] = "成人の日";
$syuku_name[3] = "建国記念の日";
$syuku_name[4] = "春分の日";
$syuku_name[5] = "みどりの日";
$syuku_name[6] = "憲法記念日";
$syuku_name[7] = "こどもの日";
$syuku_name[8] = "海の日";
$syuku_name[9] = "敬老の日";
$syuku_name[10] = "秋分の日";
$syuku_name[11] = "体育の日";
$syuku_name[12] = "文化の日";
$syuku_name[13] = "勤労感謝の日";
$syuku_name[14] = "天皇誕生日";
//$syuku_name[15] = "";
//$syuku_name[16] = "";
//$syuku_name[17] = "";
//$syuku_name[18] = "";
//$syuku_name[19] = "";
//$syuku_name[20] = "";
$syuku_name[21] = "振替休日";
$syuku_name[22] = "国民の休日";
//月曜日判定用固定値(第1月曜日の日付をセット)
$mondy_rel[0] = 2;
$mondy_rel[1] = 1;
$mondy_rel[2] = 7;
$mondy_rel[3] = 6;
$mondy_rel[4] = 5;
$mondy_rel[5] = 4;
$mondy_rel[6] = 3;
//春分の日計算用固定値
$spring_day_1[0] = 19.8277;
$spring_day_1[1] = 20.8357;
$spring_day_1[2] = 20.8431;
$spring_day_2[0] = 1983;
$spring_day_2[1] = 1983;
$spring_day_2[2] = 1980;
//秋分の日計算用固定値
$autumn_day_1[0] = 22.2588;
$autumn_day_1[1] = 23.2588;
$autumn_day_1[2] = 23.2488;
$autumn_day_2[0] = 1983;
$autumn_day_2[1] = 1983;
$autumn_day_2[2] = 1980;
//Nullチェック
if ($inp_year == "" || $inp_month == "" || $inp_day == "") {
//いずれかがNullの場合、エラーとする
return -1;
}
//入力年月日をint型に変換した変数を作成
$int_inp_year[0] = (int) $inp_year;
$int_inp_month[0] = (int) $inp_month;
$int_inp_day[0] = (int) $inp_day;
//日付型のチェックを行う
if (checkdate($int_inp_month[0], $int_inp_day[0], $int_inp_year[0]) == false) {
return -1;
}
//このプログラムは1851年以降2099年まで有効なのでそれ以前はエラー扱いとする
if ($int_inp_year[0] < 1851 || $int_inp_year[0] > 2099) {
return -1;
}
//前日と翌日の日付を取得
//前日
$int_inp_year[1] = date("Y",mktime(0,0,0,$int_inp_month[0],($int_inp_day[0]-1),$int_inp_year[0]));
$int_inp_month[1] = date("n",mktime(0,0,0,$int_inp_month[0],($int_inp_day[0]-1),$int_inp_year[0]));
$int_inp_day[1] = date("j",mktime(0,0,0,$int_inp_month[0],($int_inp_day[0]-1),$int_inp_year[0]));
//翌日
$int_inp_year[2] = date("Y",mktime(0,0,0,$int_inp_month[0],($int_inp_day[0]+1),$int_inp_year[0]));
$int_inp_month[2] = date("n",mktime(0,0,0,$int_inp_month[0],($int_inp_day[0]+1),$int_inp_year[0]));
$int_inp_day[2] = date("j",mktime(0,0,0,$int_inp_month[0],($int_inp_day[0]+1),$int_inp_year[0]));
//当日・前日・翌日の祝日を調べる
for($i=0;$i<3;$i++){
//曜日フラグセット
$wday_flg[$i] = date("w", mktime(0,0,0,$int_inp_month[$i],$int_inp_day[$i],$int_inp_year[$i]));
//祝日内容フラグ初期化
$syuku_flg[$i] = 0;
//デバッグ
//echo $int_inp_year[$i]."/". $int_inp_month[$i]."/".$int_inp_day[$i]."
\n";
//固定日の祝日かどうか
$syuku_flg[$i] = Fix_Syukuday($int_inp_year[$i], $int_inp_month[$i], $int_inp_day[$i]);
//祝日の場合曜日フラグを祝日にセット
if ($syuku_flg[$i] > 0) {
$wday_flg[$i] = 7;
}
//デバッグ
//echo "syuku_flg:".$syuku_flg[$i]."
\n";
//echo "wday_flg:".$wday_flg[$i]."
\n";
//第*週の月曜日の祝日かどうか
$syuku_flg[$i] = Other_Syukuday($int_inp_year[$i], $int_inp_month[$i], $int_inp_day[$i]);
//祝日の場合曜日フラグを祝日にセット
if ($syuku_flg[$i] > 0) {
$wday_flg[$i] = 7;
}
//デバッグ
//echo "syuku_flg:".$syuku_flg[$i]."
\n";
//echo "wday_flg:".$wday_flg[$i]."
\n";
//春分の日かどうか
$syuku_flg[$i] = Spring_Syukuday($int_inp_year[$i], $int_inp_month[$i], $int_inp_day[$i]);
//祝日の場合曜日フラグを祝日にセット
if ($syuku_flg[$i] > 0) {
$wday_flg[$i] = 7;
}
//デバッグ
//echo "syuku_flg:".$syuku_flg[$i]."
\n";
//echo "wday_flg:".$wday_flg[$i]."
\n";
//秋分の日かどうか
$syuku_flg[$i] = Autumn_Syukuday($int_inp_year[$i], $int_inp_month[$i], $int_inp_day[$i]);
//祝日の場合曜日フラグを祝日にセット
if ($syuku_flg[$i] > 0) {
$wday_flg[$i] = 7;
}
//デバッグ
//echo "syuku_flg:".$syuku_flg[$i]."
\n";
//echo "wday_flg:".$wday_flg[$i]."
\n";
}
//振替休日を調べる(前日が祝日)
if ($wday_flg[0] == 1 && $wday_flg[1] == 7) {
$wday_flg[0] = 7;
}
//国民の祝日を調べる(前日・翌日が祝日)
if ($wday_flg[1] == 7 && $wday_flg[2] == 7) {
$wday_flg[0] = 7;
}
//戻り値セット
$return_flg = $wday_flg[0];
return $return_flg;
}
?>
<お届け不可の日>
【 echo $get_year ?>年 echo $get_month ?>月】 |
日 |
月 |
火 |
水 |
木 |
金 |
土 |
$link = connect_db();
//日付表示
for ($i=1;$i<($month_lastday+1);$i++) {
//初期化
$youbi_html = "";
//曜日を取得(0:日曜〜6:土曜)
$weekly_num = date("w", mktime (0,0,0,$get_month,$i,$get_year));
//1日・最終日の場合の特殊処理
if ($i == 1) {
//1日の場合の処理
switch ($weekly_num) {
case 0:
break;
default:
//前の月の日で埋める
//初期化
$pre_month_html = "";
//TRタグ出力
$youbi_html .= "\n";
for ($j=0;$j<$weekly_num;$j++) {
$pre_month_html = "".($pre_month_lastday - $j)." | \n".$pre_month_html;
}
$youbi_html .= $pre_month_html;
break;
}
}
//曜日で背景表示色を変更し、日曜・土曜の場合はTRタグをつける
$pre_tr_tag = "";
$aft_tr_tag = "";
//DBにて休日だと背景色変更
$sql = "select * from calender where ymd = '".$get_year."-".$get_month."-".$i."'";
$result = @mysql_query($sql, $link);
$ymd = "";
while($row = mysql_fetch_assoc($result)) {
$ymd = $row['ymd'];
}
if ($ymd) {
// $td_bgcolor = "#FF99FF";
$td_bgcolor = "td4";
} else {
// $td_bgcolor = "#FFFFFF";
$td_bgcolor = "td5";
}
switch ($weekly_num) {
case 0:
//日曜
$pre_tr_tag = " \n";
break;
case 6:
//土曜
$aft_tr_tag .= " \n";
break;
default:
break;
}
$youbi_html .= $pre_tr_tag."".$i." | ".$aft_tr_tag;
//最終日の場合の特殊処理
if ($i == $month_lastday) {
switch ($weekly_num) {
case 6:
break;
default:
//次の月の日で埋める
//初期化
$next_month_html = "";
for ($j=1;$j<(7 - $weekly_num);$j++) {
$next_month_html .= "".$j." | \n";
}
$youbi_html .= $next_month_html;
//TRタグ出力
$youbi_html .= "\n";
break;
}
}
//表示
echo $youbi_html;
}
?>
|
&mm= echo date("m", mktime(0,0,0,$get_month,0,$get_year)); ?>" rel="nofollow">←前の月
&mm= echo date("m", mktime(0,0,0,($get_month+1),1,$get_year)); ?>" rel="nofollow">次の月→
|
■ はお届け不可の日です。
|
