基姆拉爾森計算公式 推導

2021-08-28 22:07:24 字數 1023 閱讀 9998

**:

給定乙個***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時,更不吉利。現在給你乙個年份,請你從小到大依次輸出當...