1、 蔡勒公式
w=(y+[y/4]+[c/4]-2*c+[26*(m+1)/10]+d-1)%7
考虑到取值范围,为使蔡勒公式中不出现负数,实际中可用以下公式:
c<99,2c<198,加上一个203,这样的话可以保证等号右边括号里不出现负数(203=29*7)。
w=(203+y+[y/4]+[c/4]-2*c+[26*(m+1)/10]+d-1)%7
w:星期,w对7取模得。0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世纪-1(前两位数)
y:年(后两位数)
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)
d:日
[ ]:高斯符号,代表取整,即只要整数部分。
以上的公式都只适合于1582年(我国明朝万历十年)10月15日之后的情形。罗马教皇格里高利十三世在1582年组织了一批天文学家,根据哥白尼日心说计算出来的数据,对儒略历作了修改。将1582年10月5日到14日之间的10天宣布撤销,继10月4日之后为10月15日。
若要计算的日期是在1582年10月4日或之前,公式则为:
w=(y+[y/4]+[c/4]-2*c+[26*(m+1)/10]+d+3)%7
2、 对蔡勒公式的简化改进
w=([y/4]+y%7-2*(c%4)+m'+d)%7
w=([y/4]+y%7-2*(c%4)+m'+d)%7
此公式由冯思琮提供。
为避免出现负数,可用以下公式:
w=(7+[y/4]+y%7-2*(c%4)+m'+d)%7
w=(7+[y/4]+y%7-2*(c%4)+m'+d)%7
公式中除m'以外,其他符号的含义与蔡勒公式相同。
闰年1~12月修正值m'如下表:
| 月份 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 修正 | 5 | 1 | 2 | 5 | 0 | 3 | 5 | 1 | 4 | 6 | 2 | 4 |
注意:在平年的情况下,1月份的修正值为6,2月份的修正值为2。其他不变。
该公式同样只适用于1582年10月15日以后。
3、 HotPower菜农星期公式
w=((c%4)*5+y+[y/4]+m'+d+2)%7
w=((c%4)*5+y+[y/4]+m'+d+2)%7
闰年1~12月修正值m'如下表:
| 月份 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 修正 | 3 | 6 | 0 | 3 | 5 | 1 | 3 | 6 | 1 | 4 | 0 | 2 |
注意:在平年的情况下,1月份的修正值为4,2月份的修正值为0(等同于7)。其他不变。
如果不想用查表的方式,可用以下公式:
w=((c%4)*5+y+[y/4]+[(13*m+8)/5]+d)%7
w=((c%4)*5+y+[y/4]+[(13*m+8)/5]+d)%7
此公式所有符号含义同蔡勒公式,m取3~14,某年的1,2月要看作上一年的13,14月。实际上该公式就是蔡勒公式转化而来。所以,该公式同样只适用于1582年10月15日以后。
