我来看一篇有趣的帖子,我正在尝试为其编写代码
“你好,在一周中的两天中的哪一天,周六或周日,新年元旦经常下降”
参考:http://answers.yahoo.com/question/index?qid=20080731110435AAlyxd4
我找到了解决方案
日历每400年重复一次,但因为2100年不是闰年,所以分布不均匀。事实证明,星期日,星期二和星期五的发生次数最多为1 - 5 - 58,每400年。
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));
但是我没有回答星期天的回答
任何想法?
答案 0 :(得分:1)
我不想用勺子喂你。所以给出一个简单的算法
1
答案 1 :(得分: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;
}