公式:

{ + ( / 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 就是星期二