公式:
{ 年
+ ( 年 / 4
取整数 ) + ( 年
/ 400 取整数) – (
年 / 100
取整数 ) + [ ( 月日天数
+ 当前天数
) - 1] } Mod 7
得出的余数就是星期数。
星期数由0 ~ 6
分别:
星期日
----------- 0
星期一
----------- 1
星期二
----------- 2
星期三
----------- 3
星期四
----------- 4
星期五
----------- 5
星期六
----------- 6
月日天数: 平年
—— 闰年
一月
: 0+日数, 0+日数,
二月
: 3+日数, 3+日数,
三月
: 3+日数, 4+日数,
四月
: 6+日数, 0+日数,
五月
: 1+日数, 2+日数,
六月
: 4+日数, 5+日数,
七月
: 6+日数, 0+日数,
八月
: 2+日数, 3+日数,
九月
: 5+日数, 6+日数,
十月
: 0+日数, 1+日数,
十一月:
3+日数, 4+日数,
十二月:
5+日数, 6+日数,
计算闰年公式:能被4 整除 而不能被100 整除的 或者能被4 和400 整除 年份就是闰年
闰年 = ( 年mod 4 == 0 ) && ( 年mod 100 !=0)|| ( 年mod 400==0 )
事例:
日期 2010/9/28
Year = 2010
leap-year= ( (Year mod 4 ==0 ) &&( (Year mod 100 !=0 ) || (Year mod 400 == 0 ))) ?
闰年:平年
leap-year=平年
月日天数=5
星期数 = { 2010 + ( 2010 / 4 ) + ( 2010 / 400 ) – ( 2010 / 100 ) + [ ( 5 + 28 ) - 1 ] } Mod 7
星期数 = ( 2010 + 502 + 5 – 20 + 32 } Mod 7
星期数 = 2529 Mod 7
星期数 = 2
那么
2010/9/28
就是星期二