**:
給定乙個***x-xx-xx日期,計算為星期幾。
int y; //年
int m; //月
int d; //日
int w; //週幾
從 公元0年1月1日星期日 開始
w = (d-1) % 7 --------- 公式(1)
w = (d-1 + y) % 7 --------- 公式(2)
y/4 - y/100 + y/400
結合之前的公式1,2
w = [d-1+y + (y-1)/4-(y-1)/100+(y-1)/400] % 7 -----公式(3)
三月的值,因為二月剛好28天,不影響,相當於還是推後3天。
以此類推。
因為12月已是最後乙個月,所以不用考慮12月的誤差天數,同理,1月份的誤差天數是0,因為前面沒有月份影響它。
誤差表月
誤差累計模71
3002
0333
3334
2665
3816
21147
31368
31629
219510
321011
224312
-265如果用乙個陣列記錄就是
e =
完善公式
w = [d-1+y + e[m-1] + (y-1)/4-(y-1)/100+(y-1)/400] % 7 --公式(4)
w = (d-1 + y + e[m-1] + (y-1)/4 - (y-1)/100 + (y-1)/400);
if(m>2 && (y%4==0 && y%100!=0 || y%400==0) && y!=0)
++w;
w %= 7;
以上為基本推導過程 基姆拉爾森計算公式
功能描述 根據輸入的日期判斷當天是週幾 演算法如下 基姆拉爾森計算公式 w d 2 m 3 m 1 5 y y 4 y 100 y 400 mod 7 在公式中d表示日期中的日數,m表示月份數,y表示年數。注意 在公式中有個與其他公式不同的地方 判斷日期是該月的第幾周 datetime.now.da...
基姆拉爾森公式
基姆拉爾森公式 kim larsen calculation formula 用於給定年份 y 月份 m 和日子 d 的條件下,計算該天是星期幾。初始條件 從公元 0 年 1 月 1 日,星期日開始計算 ps 公元 0 年不是閏年 輸入 y,m,d 三個整數表示年月日。輸出 w in 0,6 分別表...
不吉利的日期 基姆拉爾森計算公式
3 參考 不吉利的日期 時間限制 1000 ms 記憶體限制 32768 kb 長度限制 100 kb 判斷程式 standard 來自 小小 題目描述 在國外,每月的 13 號和每週的星期 5 都是不吉利的。特別是當 13 號那天恰好是星期 5時,更不吉利。現在給你乙個年份,請你從小到大依次輸出當...