万年历的星期算法.

中秋节到啦,送给大家一个《万年星期历公式 》  
该公式是根据公历的基本性质编制的,年份不限,准确率为100%, 
公式如下: 
(年+年/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余数+当月天数,可查算,也可心算。 
例:1000年1月1日是星期几? 
(年+年/4+年/400-年/100)/7 
=(1000+1000/4+1000/400-1000/100)/7 
=(1000+250+2-10)/7 
=1242/7 
=XX……3 
即该年1月1日为星期三。 
例: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 日为星期六。 
有兴趣的朋友不妨试试。 

你可能感兴趣的:(算法)