Php 为给定条件查找新年的代码
我来到一个网站,看到一个有趣的帖子,我正试图为此编写一个代码 你好,一周中的两天,星期六或星期天,哪一天是元旦 参考: 我找到了解决办法 历法每400年重复一次,但由于2100年等都不是闰年,所以分布不均匀。结果表明,星期日、星期二和星期五是每400年发生1月1日至58日最多的时间Php 为给定条件查找新年的代码,php,calendar,Php,Calendar,我来到一个网站,看到一个有趣的帖子,我正试图为此编写一个代码 你好,一周中的两天,星期六或星期天,哪一天是元旦 参考: 我找到了解决办法 历法每400年重复一次,但由于2100年等都不是闰年,所以分布不均匀。结果表明,星期日、星期二和星期五是每400年发生1月1日至58日最多的时间 Monday - 56 Tuesday - 58 Wednesday - 57 Thursday - 57 Friday - 58 Saturday – 56 Sunday
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));
newyearsday的函数日($beginYear,$endYear)
{
对于($i=$beginYear;$i我不想用勺子喂你。所以给出一个简单的算法
创建一个数组
数字范围为1600到2000
创建日期为“Number-01-01”的datetime对象
获取日期时间的星期日
按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;
}
newyearsday的函数日($beginYear,$endYear)
{
对于($i=$beginYear;$i<$endYear;$i++){
$date=新的日期时间;
$date->setDate($i,1,1);
$day=$date->format('l');
如果(设置($days[$day]))
$days[$day]++;
其他的
$days[$day]=1;
}
返回$days;
}
好的,一个好的开始是将我们链接到帖子,这样我们就知道发生了什么……这是一个雅虎问题。有人也尝试了这里的代码。但它不起作用。我的主要动机是在PHP中复制这一点:(你得到了什么?),我已经写了alogo。但是我希望答案是星期天58。因为这是正确的答案。这就是为什么我在这里发布问题。如果你在年度范围1600
-2000
。并且我的答案中已经说明了。数组([星期四]=>316[星期三]=>15[星期五]=>15[星期日]=>14[星期一]=>14[星期二]=>13[星期六]=>13.当我使用echo print时,它会返回此消息(星期四]=>21[星期三]=>20[星期五]=>19[星期日]日历被窃听,只能从1901年到2038年工作,请看,即使我尝试echo print(星期二]=>13[星期六]=>13.它是纯打印数组([星期四]=>21[星期三]=>20[星期五]=>19[星期日]=>19[星期一]=>20[星期二]=>19[星期六]=>19):(