[PHP-users 17718]Re: 指定曜日の日付を取得する関数

Go Hosoya go.hosoya @ gongon.info
2003年 9月 8日 (月) 11:15:00 JST


細谷です。

> こんにちは、きしかわです。
> 
> 再度、日付関連で質問なのですが、
> 指定年の指定曜日の日付を取得したくやり方を考えているのですが、
> そのものずばりの関数は存在しますか。

他の方からも出ていますが、自作しないとこのような用途の関数は
存在しないようです。

で、僕なりに作って見ました。ソースは示さずに、作り方の着眼点
のみ以下に列挙しますので、参考にしていただければ幸いです。

1. 指定年の1月1日の曜日が分かれば、取得したい曜日の最初の日
   付がわかります。指定年が2003年で指定曜日が木曜日とした場
   合、2003年の1月1日は水曜日です。水曜日と木曜日に日数差は1
   日ですから、1月1日に一日分足した1月2日が指定年の最初の曜
   日となります。

2. 1で求められた指定曜日の最初の日から、52回か53回、7日を足
   し続けます。52か53というのは、1年における曜日の出現回数に
   なります。閏年でない年の場合は、1月1日の曜日だけ53回出現
   します。閏年の場合は、1月1日と2日の曜日が53回出現します。

3. 出現回数が52回か53回については、チェックする方法はいろい
   ろとあると思いますが、僕はmktime関数でループさせて渡した
   日付が指定年かどうかでチェックさせるようにします。
   if($year==(int)date("Y",mktime(0,0,0,$mon,$day,$year)))
   と言った感じでやるということです。

これだけの情報で分かってもらえる自信があまりないのですが、ど
うしても分からない場合は再度ご質問ください。


---------------------------------
Go Hosoya <go.hosoya @ gongon.info>

「万物は流転す」 ヘラクレイトス


PHP-users メーリングリストの案内