Notice: Undefined index: nen in /home/member/sitemix_55218/site/calendar_setumei2.php on line 5

Notice: Use of undefined constant Y - assumed 'Y' in /home/member/sitemix_55218/site/calendar_setumei2.php on line 6

Notice: Undefined index: tuki in /home/member/sitemix_55218/site/calendar_setumei2.php on line 8

Notice: Use of undefined constant n - assumed 'n' in /home/member/sitemix_55218/site/calendar_setumei2.php on line 9

Notice: Use of undefined constant Ynj - assumed 'Ynj' in /home/member/sitemix_55218/site/calendar_setumei2.php on line 11

Notice: Use of undefined constant Y - assumed 'Y' in /home/member/sitemix_55218/site/calendar_setumei2.php on line 12

Notice: Use of undefined constant n - assumed 'n' in /home/member/sitemix_55218/site/calendar_setumei2.php on line 13

Notice: Use of undefined constant t - assumed 't' in /home/member/sitemix_55218/site/calendar_setumei2.php on line 16
2018年9月

Notice: Undefined variable: y2 in /home/member/sitemix_55218/site/calendar_setumei2.php on line 63

Notice: Undefined variable: y2 in /home/member/sitemix_55218/site/calendar_setumei2.php on line 63

Notice: Undefined variable: y2 in /home/member/sitemix_55218/site/calendar_setumei2.php on line 63

Notice: Undefined variable: y2 in /home/member/sitemix_55218/site/calendar_setumei2.php on line 63

Notice: Undefined variable: y2 in /home/member/sitemix_55218/site/calendar_setumei2.php on line 64

Notice: Undefined variable: y2 in /home/member/sitemix_55218/site/calendar_setumei2.php on line 64

Notice: Undefined variable: y2 in /home/member/sitemix_55218/site/calendar_setumei2.php on line 64

Notice: Undefined variable: y2 in /home/member/sitemix_55218/site/calendar_setumei2.php on line 64

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110

Notice: Undefined variable: syuubunn in /home/member/sitemix_55218/site/calendar_setumei2.php on line 110
      1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
2425 26 27 28 29 30

PHPスクリプトでカレンダー作成(休日と祝日と振り替え休日タイプ)

PHPのテクニックが少し向上したので
「休日」、「祝日」、「振り替え休日」をやってみました。

中でも、成人の日などは、
「1月の第2月曜」となっていてその年によって、日付が異なるので厄介

「海の日」、「体育の日」、「敬老の日」なども
同様に第2、第3月曜日になっていて厄介です

もっと難しいのが「春分」「秋分」の日で
「国立天文台に基づき前年度の2月1日」に発表となってます
意味不明です(笑)
でもよく調べると、「春分」「秋分」を求める式なるものがあるようです。。。。

祝日の作り方は、(($_SESSION["tuki"] == 1) && ($cnt == 1))なんて感じで
面倒くさいですが1つ、1つ手作業で入れました。
もっと賢い方法があるのかな?(Pear使うのは なしで)

例の「成人の日」ですが、カレンダーを「たて」、「よこ」カウントして
横が一番右に到達したときに「たて」を1増やせば、
第?週は 簡単にできます。

	


PHPカレンダープログラム(休日、祝日付き)の作り方

振り替え休日は、「次の日が月曜日なら振り替え」というプログラムになってます
1月2日が月曜なら「振り替え」という感じです。例えば・・・・・

(($_SESSION["tuki"] == 1) && ($cnt == 2) && ($orikaesi == 0)){//元旦振り替え
	
とこのようになります。(1月2日が月曜なら振り替え休日なので・・・・)

【第?月曜日はどうやって計算するの?】
次は 問題の「成人の日」、「体育の日」、「敬老の日」、「海の日」ですが・・・
カレンダーの「たて」いわゆる 行を数えれば意外と簡単でした

前に作ったカレンダーに当てはめれば・・・・
(($_SESSION["tuki"] == 1) && ($tate == 2) && ($orikaesi == 0){	//成人の日

(($_SESSION["tuki"] == 7) && ($tate == 3) && ($orikaesi == 0)){	//海の日

(($_SESSION["tuki"] == 9) && ($tate == 3) && ($orikaesi == 0)){	//敬老の日

(($_SESSION["tuki"] == 10) && ($tate == 2) && ($orikaesi == 0)){ //体育の日
というようになります

最後に「春分」と「秋分」ですが
どうも「地球の軌道」とかそのへんで、微妙に変るらしく・・・・
「国立天文台に基づき前年度の2月1日」(爆)となっているのですが・・・・

以下 春分、秋分の説明文

太陽は星々の間を移動していて、その通り道を「黄道」といいます。
 また、地球の赤道を天にまで延長したものを「天の赤道」といいます。
黄道と天の赤道は、お互いが傾いているために2点で交わり、
その交点のうちの一方を「春分点」、もう一方を「秋分点」と呼びます。
そして、太陽が春分点・秋分点の上を通過する瞬間がそれぞれ「春分」「秋分」と定義され
「春分」「秋分」を含む日のことを、それぞれ「春分日」「秋分日」と呼ぶのです

前置きが長くなりましたが、調べていたら計算式がそのままのっていました

$syunbun = 
(int)(20.69115 + 0.2421904 * $y2 - (int)($y2/4 + $y2/100 + $y2/400));//春分

$syuubun = 
(int)(23.09000 + 0.2421904 * $y2 - (int)($y2/4 + $y2/100 + $y2/400));//秋分

(($_SESSION["tuki"] == 3) && ($cnt == $syunbun)){//春分の日
(($_SESSION["tuki"] == 9) && ($cnt == $syuubunn)){//秋分の日
	

以上が「休日」、「祝日」、「振り替え休日」の作り方です


【休日、祝日付きカレンダーを作る】
ふつうのカレンダーに以上の要素を加えると作れます
(すこし面倒くさいですが・・・)


ふつうのカレンダーは 横(いわゆる列)しかカウントしてませんでしたが
休日、祝日、振り替え休日を入れる場合は、「たてをカウント」する事が
 ポイントです。

【カレンダー作成あとがき】 月を変える為に進めているとたまに「ビクッ」となるのが笑えます