0

そのためのコードを書こうとしている興味深い投稿を見に来ました

「こんにちは、土曜と日曜のどちらが元旦に多い曜日ですか?」

参考:http ://answers.yahoo.com/question/index?qid=20080731110435AAlyxd4

私は解決策を見つけました

カレンダーは 400 年ごとに繰り返されますが、2100 年などはうるう年ではないため、分布は均等ではありません。400 年ごとに 1 月 1 日から 58 日が最も多く発生するのは、日曜日と火曜日と金曜日であることがわかります。

   Monday - 56
   Tuesday - 58
   Wednesday - 57
   Thursday - 57
   Friday - 58
   Saturday – 56
   Sunday - 58

しかし、私は取得していません.PHPでこれをどのように複製できますか?

このために、私が試していないと思う人は、私の質問に投票してダウンロードしてみてください。私はすでにコードをテストしています。

function DayOfNewYearsDay($beginYear,$endYear)
{
for($i=$beginYear;$i<$endYear;$i++)
{
$day = date("l", mktime(1, 1, 1, 1, 1, $i));
if(isset ($days[$day]))
$days[$day]++;
else
$days[$day]=1;
}
return $days;
}

echo  print_r(DayOfNewYearsDay(2000, 2400));

しかし、私は答えとして58 Sundayを得ていません

何か案が ?

4

2 に答える 2

1

DateTime オブジェクトを使用して、mktime の php 制限を回避します。

function DayOfNewYearsDay ($beginYear, $endYear)
{
    for ($i = $beginYear; $i < $endYear; $i++) {
        $date = new DateTime;
        $date->setDate($i, 1, 1);
        $day = $date->format('l');
        if (isset ($days[$day]))
            $days[$day]++;
        else
            $days[$day] = 1;
    }

    return $days;
}

http://codepad.org/iGou6dk4

于 2013-06-15T10:09:24.673 に答える