根據公式https://en.wikipedia.org/wiki/ISO_week_date在每週部分您應該能夠找到每年53周。我抄公式爲PHP,但它似乎亂了2020年左右返回52周而不是53如何計算一年是否有53周
function weeks($year){
$w = 52;
$p = ($year+($year/4)-($year/100)+($year/400))%7;
if ($p == 4 || ($p-1) == 3){
$w++;
}
return $w." ".$p;
}
for ($i = 2000; $i <= 2144; $i++) {
echo $i." (".weeks($i).") | ";
}
維基百科
以下71年在一個400年的週期有53周(371天); 未上市有52周(364天);加上當前年份的2000:
004,009,015,020,026,032,037,043,048,054,060,065,071,076, 082,088,093,099,105,111 ,116,122,128,133,139,144
我知道我可以使用date()函數獲取給定年份的總週數,但我只是想知道是否有人知道數學維基百科上的公式似乎是錯誤的。
編輯工作代碼
function p($year){
return ($year+floor($year/4)-floor($year/100)+floor($year/400))%7;
}
function weeks($year){
$w = 52;
if (p($year) == 4 || p($year-1) == 3){
$w++;
}
return $w; // returns the number of weeks in that year
}
for ($i = 2000; $i <= 2144; $i++) {
echo $i." (".weeks($i).") | ";
}
有53個星期。 –
@JayBlanchard所以100年後有36,400天? :) – hobbs
週數和ISO週數可能是不同的事情。我想我只會看一年中最後一天的ISO週數。 –