用C语言编万年历要注意什么!!!高手请指点!!!

来源:百度知道 编辑:UC知道 时间:2024/06/04 15:56:41

该公式是:

(年+年/4+年/400-年/100+月日天数-1)/7=XX……余。余数为星期几。

其中:(年+年/4+年/400-年/100)/7=XX……余。余数为该年1月1日星期数。(注:分数和商数均取整数)

但是月日天数有规则:

月日天数: 平年 , 闰年

一 月: 0+日数, 0+日数

二 月: 3+日数, 3+日数

三 月: 3+日数, 4+日数

四 月: 6+日数, 0+日数

五 月: 1+日数, 2+日数

六 月: 4+日数, 5+日数

七 月: 6+日数, 0+日数

八 月: 2+日数, 3+日数

九 月: 5+日数, 6+日数

十 月: 0+日数, 1+日数

十 一 月: 3+日数, 4+日数

十 二 月: 5+日数, 6+日数

(注:月日天数为前各月累积7余数+当月天数,可查算,也可心算。)

例:2005年(平年)10月1日星期几?

(年+年/4+年/400+年/100+月日天数-1)/7

=(2005+2005/4+2005/400-2005/100+(0+1)-1)/7

=(2005+501+5-20+1-1)/7

=2491/7

=XX……6

即该年10月1日为星期六。

注意算法 闰年就是