计算星期 数 的公式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

● 蔡勒公式一种改进
深圳信息职业技术学院
Shenzhen Institute of Information Technology
公共选修课程《实用数学算法(选讲)》 知识背景——计算星期数的公式
相比于另外一个通用计算公式而言,蔡勒(Zeller)公式大大降低了计算的复杂度。不过,另外 有一个似乎更加简洁更简单的改进公式,提出这个公式的人是冯思琮,公式为:
● 通用公式
W=
[
y

1
]
+
⎡ ⎢⎣
y −1 4
⎤ ⎥⎦

⎡ ⎢⎣
y −1 100
⎤ ⎥⎦
+
⎡ ⎢⎣
y −1 400
⎤ ⎥⎦
+
D
(mod 7)
式中变量说明:W 为星期数,y 为年份数,D 为该日期在该年中的月日天数,[X]为对 X 取整(下同)。
月日天数: 一月为: 二月为: 三月为: 四月为: 五月为: 六月为:
平年
0 + 日数 3 + 日数 3 + 日数 6 + 日数 1 + 日数 4 + 日数
润年
0 + 日数 3 + 日数 4 + 日数 0 + 日数 2 + 日数 5 + 日数
月日天数: 七月为: 八月为: 九月为: 十月为: 十一月为: 十二月为:
平年
6 + 日数 2 + 日数 5 + 日数 0 + 日数 3 + 日数 5 + 日数
润年
0 + 日数 3 + 日数 6 + 日数 1 + 日数 4 + 日数 6 + 日数
注 :“月日天数”为从元旦数起到这一天为止(包括这一天)的天数除以 7 的余数+当月天数, 可查算,也可心算。
例:2005 年(平年)10 月 1 日,月日天数为 0 + 日数 = 0 + 1 = 1; 2008 年(闰年)9 月 3 日,月日天数为 6 + 日数 = 6 + 3 = 9。
● 基姆拉尔森计算公式Biblioteka W=⎛ ⎜d
+
2
×
m
+

m
+
1
+
y
+
y−
y
+
y
⎞ ⎟
(mod 7)

5
4 100 400 ⎠
在公式中 d 表示日期中的日数,m 表示月份数,y 表示年份数。
注意:在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月, 例:如果是 2004 – 1 – 10 则换算成:2003 – 13 – 10 来代入公式计算。
● 蔡勒(Zeller)公式
W=Y+
⎡ ⎢⎣
Y 4
⎤ ⎥⎦
+
⎡ ⎢⎣
C 4
⎤ ⎥⎦

2C
+
⎡ ⎢⎣
26(m + 1) 10
⎤ ⎥⎦
+d–1
公式中的符号含义为:W 为星期数,C 为世纪,Y 为 年( 两 位 数 ),M 为 月 数( M = m(当 m>2),M = m + 12 (m<3)),d 为日。相比于通用计算公式而言,蔡勒(Zeller)公式大大降低了计算的复杂度。
W
=
⎡ ⎢⎣
y 4
⎤ ⎥⎦
+
r
⎛ ⎜ ⎝
y 7
⎞ ⎟ ⎠

2r⎜⎛ ⎝
C 4
⎟⎞ ⎠
+
m′
+
d
公式中的符号含义为:r ( X ) 为对表达式 X 取余,m'是 m 的修正数,其他符号与蔡勒公式中含义相 同。1 至 12 月的修正数 1' 至 12' 如下:
( 1′ , 10′ ) = 6; ( 2′,3′,11′) = 2; (4′,7′) = 5; (5′) = 0; (6′) = 3;
深圳信息职业技术学院
Shenzhen Institute of Information Technology
公共选修课程《实用数学算法(选讲)》 知识背景——计算星期数的公式
计算星期数的公式
历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多可以计算的公式。 这里简单罗列几个,当然这些公式仅适合与公历。然而,这些公式都只适合于 1582 年 10 月 15 日之 后的情形,即我国明朝万历十年间。这是因为在 1582 年罗马教皇格里高利十三世组织了一批天文学 家,根据哥白尼日心说计算出来的数据,对恺撒大帝制订的儒略历作了修改。将 1582 年 10 月 5 日 到 14 日之间的 10 天宣布撤销,即继 10 月 4 日之后为 10 月 15 日。后来人们将这一新的历法称为“格 里高利历”,也就是今天世界上所通用的历法,简称格里历或公历。
( 8′) = 1; (9′,12′) = 4;特别地:在公式中,y 为润年时(1′) = 5;(2′) =1。
相关文档
最新文档