蔡勒公式

给定一个日期: y y y m m m d d d日,求这天是星期几

1582年10月5日及之后的日期:

w = ( [ c 4 ] − 2 c + y + [ y 4 ] + [ 13 ∗ ( m + 1 ) 5 ] + d − 1 )   M O D   7 w=([\frac c 4] - 2c + y + [\frac y 4] + [\frac {13*(m+1)} 5] + d - 1)\ MOD \ 7 w=([4c]2c+y+[4y]+[513(m+1)]+d1) MOD 7

1582年10月4日及之前的日期:

w = ( [ c 4 ] − 2 c + y + [ y 4 ] + [ 13 ∗ ( m + 1 ) 5 ] + d − 1 )   M O D   7 w=([\frac c 4] - 2c + y + [\frac y 4] + [\frac {13*(m+1)} 5] + d - 1)\ MOD \ 7 w=([4c]2c+y+[4y]+[513(m+1)]+d1) MOD 7

符号的意义:

  • w : w: w星期几
  • c : c: c世纪数减一,也就是年份的前两位
  • y : y: y年份的后两位
  • m : m: m月份, m m m 的取值范围是 3 至 14,因为某年的 1、2 月要看作上一年的 13、14月,比如 2019 年的 1 月 1 日要看作 2018 年的 13 月 1 日来计算
  • d : d: d日数
  • [   ] : [\ ]: [ ]取整
  • m o d : mod: mod取余

例子: 2020年7月26日
w = ( [ 20 4 ] − 2 ∗ 20 + 20 + [ 20 4 ] + [ 13 ∗ ( 7 + 1 ) 5 ] + 26 − 1 )   m o d   7 = ( 5 − 40 + 20 + 5 + 20 + 26 − 1 )   m o d   7 = 0 w=([\frac {20} 4]-2*20 + 20 + [\frac {20} 4] + [\frac {13*(7+1)} 5] + 26 -1)\ mod\ 7=(5-40+20+5+20+26-1)\ mod\ 7=0 w=([420]220+20+[420]+[513(7+1)]+261) mod 7=(540+20+5+20+261) mod 7=0

0代表周日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值