由日期計算星期幾

2021-07-23 10:49:05 字數 791 閱讀 6879

c語言根據日期判斷星期幾(使用基姆拉爾森計算公式)

演算法如下: 

基姆拉爾森計算公式

w= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 

在公式中d表示日期中的日數,m表示月份數,y表示年數。

注意:在公式中有個與其他公式不同的地方:

把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10則換算成:2003-13-10來代入公式計算。

以公元元年為參考,公元元年1月1日為星期一程式如下:

#include "stdio.h"

void caculateweekday(int y,int m, int d)

int iweek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;

switch(iweek)

} void main()

}執行效果:

請輸入日期:

格式為:1900,1,1

2008,4,29

星期二輸入0退出,其他繼續:d

2008,1,1

星期二輸入0退出,其他繼續:l

2008,8,8

星期五輸入0退出,其他繼續:0

請按任意鍵繼續. . .

編者注:用來算現在真實日期的星期是沒有問題的。原理是根據已知公元1年1月1日的星期數來推算。如果在你的題目中約定了某天是星期幾,你要注意那天的星期是否跟真實的星期相同,如果不同,需要考慮相差幾天!

如果大家覺得不夠過癮,可以看看以下該公式的推導過程,讓大家對曆法有個更深刻的認識

日期計算星期幾

日期 月份 年份 就可以秒算任意年份任意日期的星期數 方法1 日期 指的是日期數,如3月18號,日期 為18。4月7號,日期 為7。2 月份 需要小小記憶 五月 是 0 八月 是 1 二月 三月 十一月 是 2 六月 是 3 九月 十二月 是4 四月 七月 是5 一月 十月 是 6 如果遇到閏年 則...

計算具體日期星期幾

時間基準 公元0年1月1日 星期日 首先計算0年1月幾號星期幾 int week 週幾 int day 日 week day 1 7 因為0年1月1 日 星期日 所以在求餘的時候減去1 就可以得到乙個數字 0 1 2 3 4 5 6 代表星期幾 然後考慮如何計算不同年份1月幾號星期幾 以0年1月幾號...

根據已知日期計算星期幾

private string weekarrays param date format is 2012 9 18 return weekday private string getweekday final string date int year 0 int month 0 int day 0 t...