用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日为星期六。
注意算法 闰年就是