這個公式可以有效的計算當前日期是星期幾
w=(d+2m+3(m+1)/5+y+y/4-y/100+y/400)%7
但是要注意的是每一年的一月份和二月份要當做上一年的十三月份和十四月份來進行計算
這個推導一定要注意日期邊界的計算,因為公元1年1月1號是星期1,從1年1月1日開始推算,先計算從一年總共多少天(不包含這一年),再計算這一年的所有月份的天數,再計算這個月的所有天數,這個月的天數記得減一#include
#include
using
namespace std;
intwhatday
(int y,
int m,
int d)
return
(d+2
*m+3
*(m+1)
/5+y+y/
4-y/
100+y/
400)%7
;}string weekday[7]
=;intmain()
#include
#include
using
namespace std;
intwhatday
(int y,
int m,
int d)
else
}for
(int i=
1;i)else
if(i==
4||i==
6||i==
9||i==11)
elseif(
(y%100!=0
&&y%4==
0)||(y%
400==0)
)else
} ans+
=(d-1)
%7; ans%=7
;return ans;
}string weekday[7]
=;intmain()
吉姆拉爾森 日期題目 星期幾,相差天數。
kim larsen calculation formula 請耐心看完噢,想了好久好久才寫出來的。if month 2 month 1 int weekday day 1 2 month 3 month 1 5 year year 4 year 100 year 400 7 年份偏差 365 7 ...
基姆拉爾森公式 判斷星期幾
時間限制 2000 ms 記憶體限制 65535 kb 難度 2 描述 acm的iphxer經常忘記某天是星期幾,但是他記那天的具體日期,他希望你能寫個程式幫幫他。輸入 每行有三個整數 year,month,day,日期在1600年1月1日到9600年1月1日之間 輸出輸出對應的星期,用乙個整數表示...
通過具體日期計算星期幾 蔡勒公式
include using namespace std int main w對7取模得 0 星期日,1 星期一,2 星期二,3 星期三,4 星期四,5 星期五,6 星期六 int yyyy,mm,dd int w,r cout 請輸入乙個日期 yyyy年 mm月 dd日 cin yyyy mm dd...