根据每周每年的公式https://en.wikipedia.org/wiki/ISO_week_date,您应该能够找到每周53周的公式.我已经将公式复制到PHP中,但它似乎在2020年左右回归52周而不是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).") | ";
}
Run Code Online (Sandbox Code Playgroud)
来自维基百科
以下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 …Run Code Online (Sandbox Code Playgroud) 如果读/写访问的安全规则设置为需要身份验证,firebase-admin 是否能够在没有身份验证的情况下读/写?