族谱网 头条 人物百科

星期的计算

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:941
转发:0
评论:0
简介差不多所有星期算法的基础皆可归纳如下:从一个已知的日子作为起始日,一般采用世纪的第一天,通过同余7计算共过去了多少天。如将一周日子由0至6计算,结果将为一余数,如使用1至7计算,则7将代替0。查表或使用已知规则计算上面的起始日,即该世纪开始的星期数。查表或使用已知规则计算该年份开始的星期数。计算该月份开始的星期数。从该月份开始的计算该日的星期数。由以上可得知,使用同余7表示在计算中可剔除7的倍数,如此可把7当作0、8当作1、9当作2、18当作4,如此类推。如果把星期日当作第0日,7日后(第7日)亦是星期日,而第1,8日则会与第4日相同,为星期日后的4天,即星期四。一些算法把所有加数先行计算,然后把7的倍数剔除,而其他算法则在每一步皆剔除7的倍数。两种做法皆可取,第一种做法较适用于计算机及电脑算法中,其他则较适用于心算。熟悉这些计算方法之后,可在脑内计算出来。简单的方法把四个数加起来然后...

简介

差不多所有星期算法的基础皆可归纳如下:

从一个已知的日子作为起始日,一般采用世纪的第一天,通过同余7计算共过去了多少天。如将一周日子由0至6计算,结果将为一余数,如使用1至7计算,则7将代替0。

查表或使用已知规则计算上面的起始日,即该世纪开始的星期数。

查表或使用已知规则计算该年份开始的星期数。

计算该月份开始的星期数。

从该月份开始的计算该日的星期数。

由以上可得知,使用同余7表示在计算中可剔除7的倍数,如此可把7当作0、8当作1、9当作2、18当作4,如此类推。如果把星期日当作第0日,7日后(第7日)亦是星期日,而第1,8日则会与第4日相同,为星期日后的4天,即星期四。一些算法把所有加数先行计算,然后把7的倍数剔除,而其他算法则在每一步皆剔除7的倍数。两种做法皆可取,第一种做法较适用于计算机及电脑算法中,其他则较适用于心算。熟悉这些计算方法之后,可在脑内计算出来。

简单的方法

把四个数加起来然后同余7就是所求的星期数。这四个数分别是:

C:2(3-(c mod4))(格里历)、(4-c)mod7(儒略历)或查世纪星期表

Y:(y mod28+[y mod28/4])mod7(闰年1、2月份Y-1)或查年份星期表

M:((3.4+(m-3)mod12×2.6)mod7(1、2月份M-1)或查月份星期表

D:d mod7、或查日期星期表

就是说——W=(C+Y+M+D)mod7

举例

(6+3+5+3)mod7=3,即该日是星期三,其中c=20、y=8、m=12、d=10

(6+2+3+3)mod7=0,即该日是星期日,其中c=20、y=8、m=2、d=10

(2+3+2+1)mod7=1,即该日是星期一,其中c=18、y=42、m=8、d=29

有用的概念

同周月

同周月是指那些第一天的星期数相同的月份。例如9月与12月是同周月,因为9月1日是星期几12月1日也必定是星期几。显然,只有两个月份之间相隔整数周,或恰好相隔7的倍数天时,这两个月才是同周月。比如在平年时,2月正好有28天,即2月与3月是同周月;而在闰年时,2月变成了29天,那么2月与3月就不是同周月了。下面是同周月的列表:

平年:

闰年:

注意,5月与6月,不管是平年还是闰年,与其它任何月份都不是同周月。另外,在下面的月份查找表中,同周月由于开始于一周中的同一天,所以它们的数字(星期数)是相同的。

同周年

同周年类似于同周月,是指那些第一天的星期数相同的年份。每一年的第一天都有星期一到星期日7种可能,而闰年的2月29日会改变其后日期的星期数。所以,每一年的星期构成共有14种可能。(教会用于计算复活节日期的主日文字即共有14种表示法)

例如2003年是以星期三开始的平年,与1997年为同周年;2004年是以星期四开始的闰年,与1998年同样开始于星期四,但与1999年同样结束于星期五。

算法

以下算法适用于公历。需要注意的是,算法中世纪、年、月的星期数都是指的该世纪、年、月第0天为星期几,这样的好处是在计算时只要直接将天数加上就可以了,而不必再减1。例如,1900年的第0天(即1899年12月31日)是星期天,还要加上1才是1900年第1天(即1月1日)的星期数,即星期一。

另一个需要注意的是,算法中每一步得到的数字,都是参照特定日期得到的相对星期数,即与特定参照日相差几个星期数。只有把所有这些数字相加,再根据已知的参照日才得到实际的星期数。

算法的基本步骤如下:

计算世纪的相对星期数,一种办法是在下方表格中直接查找;另一种办法是依以下规则计算:将世纪数除以4,用3减去所得的余数,再将所得数字乘以2。需要注意的是这里的世纪数是实际年数的前两位,而不是十九、二十世纪。

计算该年的相对星期数,即所要计算的该年第0天与该世纪第0天相差多少。每一平年有365天,即52个星期加1天,也就是说下一年的起始星期数是当前年起始星期数加1;如果是闰年那么还要额外加1天。这样我们如果知道该世纪开始的星期数,那么只要每过一年起始星期数加1,如果是闰年就再额外加1,这样就可以得出该世纪中任何一年的相对星期数。

计算该月的相对星期数,即所要计算的月份的第0天与该年第0天相差多少。我们参照下面的月份表可以得到每个月起始日的相对星期数。显然1月的星期数为0,因为1月的第0天也是作为参照日的该年的第0天。下面的表格同时列出了闰年时的特殊情况,有些算法把闰年放到最后一步再考虑,即如果所要计算的日期是闰年的1月或2月,将所得数字减1。两种方法都可以,只要不重复计算即可。

计算该日的星期数,即所要计算的日期与该月第0天相差多少。显然这个数字就是该日的日期数,如1月22日相对于1月第0天过去了22天,得到22,取同余7之后,相当于1。

将上面所有步骤的相对星期数相加,再取同余7就是实际的星期数了。

例子

如我们要计算1982年4月24日是星期几:

在世纪表格中查到1900所在世纪对应数字:0

该年数为:82(即82个平年)

82除以4,82/4=20.5,取整数部分:20(即有20个闰年)

在月份表格中查到4月对应数字:6

将上面所得数字与日期数24相加:0+82+20+6+24=132

对132取同余7,即132/7=18余6

在日期表中得到:6即星期六

又一个例子,1783年9月18日是星期几:

在世纪表格中查到1700所在世纪对应数字:4

该年数为:83(即83个平年)

83除以4,83/4=20.75,取整数部分:20(即有20个闰年)

在月份表格中查到9月对应数字:5

将上面所得数字与日期数18相加:4+83+20+5+18=130

对130取同余7,即130/7=18余4

在日期表中得到:4即星期四

再一个例子,2054年6月19日是星期几:

在世纪表格中查到2000所在世纪为:6

该年数为:54(即54个平年)

54除以4,54/4=13.5,取整数部分:13(即有13个闰年)

在月份表格中查到6月对应数字:4

将上面所得数字与日期数19相加:6+54+13+4+19=96

对96取同余7,即96/7=13余5

在日期表中得到:5即星期五

世纪星期表

年份星期表

月份星期表

日期星期表

表格法

查星期:先找日和月的交叉数,然后在年(闰年1、2月份用斜体数字)行找到该数,对应到世纪行的数就是所求星期数。

查2000年1月1日的星期:1月1日的交叉数是“一”,00年斜体行的“一”往上对应到0(2000)世纪行的是“六”,所以这一天是星期六。

查2000年12月31日的星期:12月31日的交叉数也是“一”,00年非斜体行的“一”往上对应到世纪行的是“日”,所以这一天是星期天。

查1855年2月23日的星期:2月23日的交叉数是“五”,27(55 mod 28)年行和2(18 mod 4)世纪行同行,所以这一天是星期五。

查主日字母:世纪行“日”所在的列为主日字母世纪列,年份行对应到该列的数字就是该年的主日字母,一为A、二为B、三为C、四为D、五为E、六为F、日为G。

查2013年的主日字母:本世纪(20或0)为第一行(上),所对应的世纪列为最后一列(右),13年对应到该列的“六”,所以主日字母是F。

查1893年的主日字母:本世纪行的“日”在第四列,93 mod 28 = 9年对应该列的“一”,所以主日字母是A。

查判决日(Doomsday)星期数:年份行的“三”对应到世纪行的数就是Doomsday。

查2013年的Doomsday:13年的“三”对应到世纪行(20或0)的数是“四”,所以Doomsday是星期四。

查1809年的Doomsday:9年的“三”对应到世纪行的数是“二”,所以Doomsday是星期二。

此外,主日字母(DL)和判决日(DD)存在着这样的关系:DL + DD = C(3)。如2013年的主日字母是F,那判决日的星期数DD = 3(C)- 6(F)mod 7 = 4(星期四)。

心算法

心算时为方便记忆,一个简单的方法就是把一年的起始日想象成3月1日而不是1月1日(就像古罗马历一样),这样闰年的2月29日就变成了每年的最后一天,而不是在一年的中间。这样,计算星期时的标准第0日就变成了2月的最后一天。下面就会看到,这样计算时很方便记忆。

判决日

4月4日,6月6日,8月8日,10月10日,12月12日都与第0日(2月最后一天)的星期数相同。

5月9日,9月5日也与第0日相同。(为方便记忆,这些日子称为“朝九晚五”)。

7月11日,11月7日也与第0日相同。 (为方便记忆,这些日子称为“便利商店7-11”) 。

这些日子在判决日法则中被称作判决日,与心算的过程类似,可帮助计算。

另一好处是1月和2月的计算也相对简单了,只要记住1月9日(或1月16日)和2月6日与上一年的判决日(2月最后一天)星期数相同就可以了。下面列出了每个月中便于记忆的判决日:

所以只要确定每一年的第0日(2月最后一天)是星期几,参照上方列出的具有相同星期数的判决日,即可快速推算某天是星期几。

年数的计算

确定每一年的第0日是星期几很简单:

首先记住2000年第0日(2月最后一天)是星期二。每100年的第0日的星期数按下面规律变化:星期二(Tuesday),星期日(Sunday),星期五(Friday),星期三(Wednesday),星期二(Tuesday),星期日(Sunday),星期五(Friday),星期三(Wednesday)……如此循环往复。(一个帮助记忆的方法就是取英文字的首字母(T.S.F.W),将它们组成一句话:Too Sunny For Walk)按此规律,2100年第0日是星期日,1900年是星期三。

此外,每过一个平年,第0日的星期数加1,每过一个闰年,第0日的星期数加2。这样每过12年,第0日的星期数就加1。比如2000年是星期二,2012年就是星期三,2024年就是星期四。另外一个值得记住的是,每相隔28年,只要相隔的两年在一个世纪内,或者跨过2000年,那么它们的第0日都在一个星期。(比如1972年与2028年是一样的。)

例子

比如我们要计算2017年6月3日是星期几。首先想到2000年第0日是星期二,那么12年后的2012年是星期三,2013年是星期四,2014年是星期五,2015年是星期六,2016年是星期一(因为是闰年),2017年第0日就是星期二。然后想到6月的判决日6月6日也是星期二,那么3天前的6月3日就是星期六。

高斯公式

格里历:w=(d+[2.6m− − -->0.2]+5(ymod⁡ ⁡ -->4)+3y+5(cmod⁡ ⁡ -->4))mod⁡ ⁡ -->7{\displaystyle w=(d+[2.6m-0.2]+5(y\operatorname {mod} 4)+3y+5(c\operatorname {mod} 4))\operatorname {mod} 7} 儒略历:w=(d+[2.6m− − -->2.2]+5(ymod⁡ ⁡ -->4)+3y+6(cmod⁡ ⁡ -->7))mod⁡ ⁡ -->7{\displaystyle w=(d+[2.6m-2.2]+5(y\operatorname {mod} 4)+3y+6(c\operatorname {mod} 7))\operatorname {mod} 7}

例子

计算2000年1月1日的星期,这一日期应视为1999年的11月1日。

w = 1 + 0 + 1 + 3 + 1 = 6 = 星期六

计算2000年12月31日的星期,这一日期应视为该年的10月31日。

w = 3 + 4 = 7 mod 7 = 0 星期日

计算1777年4月30日的星期,这一日期应视为该年的2月30日。

w = 2 + 5 + 5 + 0 + 5 = 17 mod 7 = 3 = 星期三

计算1582年10月4日的星期,这一日期应视为该年的8月4日。

w = 4 + 4 + 3 + 1 + 6 mod 7 = 4 = 星期四

计算BC1(0)年1月1日的星期,这一日期应视为前一年的11月1日。

w = 1 + 5 + 1 + 4 + 0 mod 7 = 4 = 星期四

Babwani公式

2004年11月,巴布瓦尼(Babwani)在伦敦数学学报(Mathematical Gazette)上发表了一种新的星期计算法。他的这种新方法相对于其它方法更简单,而且不仅可用于计算星期数,更可以在星期、日期、月份、年份中已知任意三者时,计算剩下的未知者。

公式:w = (⌊5y/4⌋ + m + d - 2(c mod 4) + 7) mod 7

蔡勒公式

在蔡勒算法中,每一年被假设从3月开始,月份标号从3(3月)到14(二月),即1995年1月被认为是1994年13月。具体的算法是这样的:

其中w代表星期

c代表世纪数减1(年份前两位数)

y代表年(两位数)

m代表月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)

d代表日

[ ]称作高斯符号,代表取整,即只要整数部分。

mod代表同余(这里代表括号里除以7后的余数)

主日字母

每一年的星期数也可以根据主日字母确定。基督教教历上常用A-G七个字母来标示某一年的星期日(主日)是在第几天,如1月3日为星期日,那么该年的主日字母就是C。该年的主日字母确定了,那么每一天就按顺序被分配给相应的字母。此一方法据说最早古罗马人就有使用,后来常用于基督教上确定复活节日期的一种计算办法。在这一系统中,闰年的2月29日没有主日字母,这就使得2月29日之后的星期日与此前的星期日的主日字母不一致,所以闰年的主日字母都有两个。

参见

ISO 8601

判决日法则

蔡勒公式

万年历

儒略日

资料来源

青衣北网

World records for mentally calculating the day of the week in the Gregorian Calendar

National records for finding Calendar Dates

World Ranking of Memoriad Mental Calendar Dates (all competitions combined)


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· “星期”的由来
中国为什么把七日一周叫“一星期”呢?这得从袁嘉谷说起。1903年,袁嘉谷参加科举考试,殿试中二甲六十二名,赐进士出身。同年,云贵总督魏光熹又保荐袁嘉谷参加“经济特科”考试,袁嘉谷复试获一等一名,授翰林院编修,派赴日本考察。1905年,袁嘉谷奉命调入学部筹建编译图书局,后任该局首任局长。编译图书局下设编书课、译书课,任务是研究编写“统一国之用”的官定各种教材。1909年,编译图书局设立了一个新机构“编订名词馆”,专门负责统一规范教科书中的名词术语。袁嘉谷亲自参加了这个馆的工作。把七日一周制变为中国自己的“星期”,就是在袁嘉谷主持下制定的。
· 星期
东亚中国的“七曜”和西方以七星命名的七天相对应,大约发生于唐朝。印度佛经《宿曜历经·七曜直日历品第八》:其中“具备自南西北三方诸国”一语,可见当时佛家宣扬,七星命名七天为一周的方法当时已通行于南、西、北,希望东方的大唐也采纳这种纪日法。唐朝时,七曜和二十八宿结合生成曜日。《宿曜经下》曰:“太阳直日(日曜日也),月与尾合。太阴直日(月曜日也),月与心合。火曜直日,月与壁合。水曜直日,月与昴合。木曜直日,月与井合。金曜直日,月与张合。土曜直日,月与亢合。已上名金刚峰日。”二十八宿及其对应的动物与七曜相配,组成值日星君:“角木蛟、亢金龙、氐土蝠、房日兔、心月狐、尾火虎、箕水豹、斗木獬、牛金牛、女土貉、虚日鼠、危月燕、室火猪、壁水㺄、奎木狼、娄金狗、胃土彘、昴日鸡、毕月乌、觜火猴、参水猿、井木犴、鬼金羊、柳土獐、星日马、张月鹿、翼火蛇、轸水蚓”。老黄历的值日星君就是曜日。日曜日是星期日,月曜日是星...
· 星期五
参见十三号星期五
· 星期六
双休日将星期六及星期日定为双休日(或称周休二日),政府、学校以及多数企业均以这两日作为休息日。参考
· 星期日
参见第11号交响曲(肖斯塔科维奇)参考

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信