星期速算法——教你3秒速算星期(详尽版)
[迄今最系统最详尽的星期速算科普文献]
东丁
星期与我们的生活关系密切。有些人能快速心算任意日期的星期日数,常被视为神奇,甚至被媒体称作奇人。实则不足为奇,速算星期只需简单的加减心算和少量记忆即可完成。你学习了本文介绍的速算方法,稍加练习,便可在3秒钟内算出星期,立马变为奇人。学会速算星期,如同胸存日历,利己利人,好处多多,且可终生受用。本文以星期基数法为重点,参以笔者多年研创心得,由浅入深,系统介绍,引导学习,力求推广星期速算的实用妙法,助益社会。
一、基数法速算星期的基本方法
基数法计算星期由来已久。该法简单快捷,易学易记,适合心算,最切实用。我们为每个公历年份的每个月都确定一个星期基数,称月基数,是0~6之间的正整数。某个月的月基数等于该月首日的星期日数减1,亦即等于上月末日的星期日数。公历年份每年有12个月基数,可组成一组月基数数列。如2014年1~12月的月基数是:
月份123456789101112
月基数255136140250
星期计算公式:
[日数+ 月基数]/ 7……余数(即星期日数)
要计算某月某日是星期几,只需用日(号)数加上该月的月基数,再除以7(或直接减去7的倍数),所得余数即为星期日数。余数是0则为星期日。日数+ 月基数小于7时可直接得出星期日数,如等于7则为星期日。在基数法计算中,7=0,逢7化0,必要时也可化0为7。
例如:求2014年3月8日是星期几。3月的月基数是5,则:
(8 + 5)/7 ……余6
答案是星期六。
又如:求2014年10月1日的星期。10月的月基数是2,则:
1 + 2 = 3
答案是星期三。
疑为繁难之法,说来如此简单。你有兴趣一试吗?
2014年的一组月基数255136 140 250需要背熟记牢,计算时要准确快速对应月份,分季诵记利于快速对位。运用上法,2014年任一日期的星期日数都可用心算轻松快速算出,熟而生巧,用时3秒应该绰绰有余了!
二、邻近年份星期速算
记住了一个年份的月基数,前后年份的月基数就很容易推算出。下一年如果是平年,其月基数是上年各月月基数+1,逢7化0;下一年如果是闰年,其月基数是上年1、2月月基数+1、3~12月月基数+2;闰年后接平年,则此平年月基数是上年1、2月月基数+2、3~12月月基数+1。
因为逢7化0,所以公历年份全部月基数数列只有7组(加上闰年可分化为14组),循环反复,每5~6年循环一遍。7组月基数循环数列及对应年份(1979~2028)如表一:
表一月基数循环数列及对应年份(1979~2028)
月份12 34 56 7 89 10 1112对应年份 |
03 36 146 250 351979/ 9096 0107/18 24 14 4025 03 6 14 68085 91 /02081319/ 25 51 36 1 40 2 50 /86 92 97 03/142025 36 6 2 40 25 13 618187 / 98 040915 /26 40 03 513 624 02 8288 93 99 /101621 27 51 14 624 0 35 1 3 83/ 9420000511/2228 62 25 035 146 248489 95/06121723/ |
如表,2015年月基数为366240 251 361;2001年月基数为033614 625 035。
闰年月基数占用2行,即1、2月用本行,3~12月移用下一行。如2016年月基数为401462 403 513。
表一7组月基数数列,只要记住一组,就可全部推算出来。闰年的月基数数列不必刻意记忆,可从7组数列中推算出。
应用此法一年,一组月基数数列可自然记熟,连用五六年,全部数列一一印入脑中,再加背诵强化记忆,则可烂熟于心、终身难忘了。
年首基数:
1月的月基数又称作年首基数,可简称年基数。年首基数在星期速算中很重要,可用它代表一组月基数数列。知道或记住某公历年份的年首基数,就可以知道或推算出该年各月的月基数,也就能很容易地推算出相邻年份的年首基数。如能记住近数十年中年首基数是0的年份,再辅以指算法(见后),则可提高计算速度。又如1944、1955、1966、1977、1988(3~12月)、2000、2011、2022、2033等年份末2位数字相同,而年首基数都是5,颇具特色,可资记忆。
指算法:
在一手(如左手)食指的三个指节的正侧面及指尖设定7个数位,指尖顶端为0,三指节正面(掌心侧)从指尖顺序而下为1、2、3,三指节外侧面从指根顺序而上为4、5、6,分别代表年首基数0~6。用拇指尖定位,从已知年首基数的数位顺序或逆序点定数位,默数年份,可助推算。
如已知2007年年首基数是0,求2011年年首基数,则可从指尖0位起顺序点数,0位是07年,1、2位是08年(闰年占两位),3位09年,4位10年,5位11年,则2011年年首基数是5。
三、任意年份的星期速算
要计算过去或将来任意公历年份的星期,很明显,首先必须推算出所求年份的年首基数。求出年首基数,相当于知道了月基数,计算也就过半了。计算年首基数,我们以20世纪年首基数的算法为基准。其它世纪的年首基数,均可据20世纪相同年份年首基数调整而得。
1、20世纪年首基数计算
在本速算法中,20世纪年首基数的算法是其它世纪算法的依据,颇显重要。世纪年份的划分,皆以00~99为起迄,稍异于通常划分方法。
20世纪(此指1900~1999年)年首基数计算公式:
[公历年份末2位/4(取整数)+公历年份末2位]/ 7……余数(即年首基数,
闰年-1)
例如:求1949年年首基数及10月1日星期日数。
计算年首基数:[49 / 4(取整数)+49] / 7……余5(即年首基数)
计算星期日数:该年月基数即为511 462 403 513,10月月基数5,则:
(1+5)/7……余6或:1+5=6
答案:1949年年首基数是5, 10月1日是星期六。
又如:求1964年(闰年)年首基数。
(64/ 4+64) / 7 ……余3-1(闰年调整)=2
答案:1964年年首基数是2。(该年月基数为256240 251 361)。
星期计算中,要特别注意区分闰年,一旦忽略,结果必误。凡闰年的计算均较平年略有调整,一般是照平年计算后-1。
2、本世纪年首基数计算
本世纪(即21世纪,此指2000~2099年)年份的年首基数,可先按上述20世纪相同年份(指末2位)年首基数的算法计算,所得结果再作世纪调整-1(或+6),即为所求年份的年首基数。
例如:求2030年年首基数。
[30 / 4(取整数)+30]/ 7……余2-1=1
答案为1。
又如:求2000年(闰年)年首基数。
(00/4+00)/7……余0(可化为7)-1(闰年调整)-1(世纪调整)=5
或(00/4+00)/7……余0-1(闰年调整)+6(世纪调整)=5
答案为5。此例(00/4+00)/7可心算直接得0,以求快速。
3、其它世纪年首基数计算
其它世纪年份的年首基数计算,可在20世纪相同年份(指末2位)年首基数计算结果上按世纪调整值作世纪调整即可。
(1)邻近世纪年首基数计算
世纪调整值可按下式得出:
世纪(序)数/ 4……余数→对应调整值
余数对应的年首基数世纪调整值见表2:
表2余数对应的世纪调整值及世纪年份
余数对应的年首基数世纪调整值对 应 世 纪 年 份 (以20世纪相同年份年首基数为基准)(16~23世纪) |
0±020(1900~1999)、16(1583~1599)世纪 1-1(或+6)21(2000~2099)、17(1600~1699)世纪 2-3(或+4)22(2100~2199)、18(1700~1799)世纪 3-5(或+2)23(2200~2299)、19(1800~1899)世纪 |
邻近世纪的对应调整值应当熟记,必要时才临场推算。
例如:求17世纪年首基数调整值。
17 / 4……余1→对应调整值+6(或-1)。
表中20、21、19世纪应重点记忆掌握。以20世纪为基准(计算后不调整),21世纪调整值-1(或+6),19世纪调整值+2(或-5)。调整计算均逢7化0,0=7,必要时也可化0为7。
已知世纪调整值后就可推算各世纪年首基数。
例如:求1895年年首基数。19世纪调整值为+2(或-5),则:
按20世纪基准运算:[95/ 4(取整数)+95] / 7……余6
世纪调整:6+2(调整值)=8-7(逢7化0)=1或:6-5(调整值)=1
答案是1。
又如:求1840年(闰年)年首基数。19世纪调整值为+2(或-5),则:
(40/4+40)/7……余1-1(闰年调整)=0
0 +2(世纪调整)=2
答案是2。
(2)1582年10月15日之前的年首基数计算
星期纪日制度自公元前321年3月7日由古罗马君士坦丁大帝正式颁行沿用至今,但当今世界通行的公历是从公元1582年教皇格列高里十三世宣布改历后才颁行,原儒略历1582年10月4日的下一天被定为格列历(即今公历)10月15日,中间跳过10天。因此,在星期计算中,上述计算方法只适用于1582年10月15日之后,此前即1582年10月4日及以前的日期,计算方法稍异。
1582年可视为有两个年首基数,1月1日~10月4日年首基数是0;10月15日~12
月31日采用年首基数是4的月基数数列。而公元纪年中的其它年份都只有一个年首基数。
1582年10月15日之前至公元元年之间的各世纪,其年首基数调整值可按上述方法(余数对应值)确定后,再+3(或-4)。
例如:求公元321年年首基数。此年属4世纪,则:
世纪调整值:4 / 4……余0→对应调整值±0
年首基数:[21/4(取整数)+21]/7……余5-0(对应调整值)-4= 1
答案:该年年首基数是1。
公元前年份年首基数的计算方法与公元后年份不同,稍显复杂,本文从略。
四、简化基数法速算星期
简化基数法与前述基数法原理相同,只是记忆内容和计算程序简化。此法将前法的月基数拆分为基准月基数+年首基数,计算时只需记忆一组固定的基准月基数,即:
0 3 3 6 14 6 25 0 35
可依月份记诵为:一0二3三3,四6五1六4,七6八2九5,十0冬3腊5。
星期计算公式:
[日(号)数+基准月基数+年首基数]/ 7……余数(即星期日数,
闰年3~12月+1)
此法要点是记忆或计算年首基数。年首基数的推算仍需依前述方法。得数的闰年调整与前述方法略异,不是-1,而是3~12月+1(1、2月不调)。
例如:求2015年12月25日是星期几。此例日数是25,12月的基准月基数是5,年首基数经推算是3,计算如下:
(25+5+3)/7 ……余5
答案是星期五。
又如:求1976年7月28日的星期。此例年份是闰年,所求月份需作闰年调整+1,年首基数经推算是3。计算如下:
(28+6+3)/7……余2+1(闰年调整)=3
答案是星期三。
此法不必记忆逐年变化和闰年分化的多组月基数,任何年份均按相同的一组月基数(即基准月基数)计算,以不变应万变,简明易记。虽要多加一个年首基数,但因各月的月基数固定,减小了月基数月份定位的难度,简化记忆,使基数法速算星期方法更精炼,更简便实用。此法较适合需要推算年首基数的较远年份的星期计算,对于当年和邻近年份的计算,不如前法(使用7组循环月基数)的计算来的直接,计算速度或许会稍受影响。但若使用得法,运用熟练,亦可与前法不相上下,各有千秋。
五、其它计算公式及验算
有时也可采用其它一些公式来计算星期,借以对速算结果进行验算,或保证某些重要日期星期计算的准确性。这些公式略显繁琐,快速心算有一定难度,主要用作验算、核查。有速算特长者也不妨尝试用以速算星期。
公式一:
年首基数=(公历年份+公历年份/4+公历年份/400-公历年份/100)/7……余数-1
(闰年-2)
注:带公历年份的分数式计算只取整数。
例如:求1921年年首基数。
(1921+1921/4+1921/400-1921/100)/7……余6-1=5
答案是5。
公式二:
星期日数=(公历年份+公历年份/4+公历年份/400-公历年份/100+计算日至年首日数)/7 ……余数-1
例如:求1949年10月1日是星期几。
(1949+1949/4+1949/400-1949/100+274)/7……余0(化为7)-1=6
答案是星期六。
六、速算技巧的灵活运用
在星期速算中,全部运算必须使用心算,除了熟练掌握基数法的基本原理方法外,还应当灵活运用各种速算技巧,以尽量提高运算速度。
如(日数+月基数)/7,可以以减代除,直接减去7或7的倍数。
又如:日数+月基数,日数是7的倍数时,可视为0,省却相加。
再如:月基数为0时,不必再加,省去可有可无的计算;分式中的分子或被除数是0,不必计算,直接得0;某些算式如(年份末2位/4+年份末2位)/7,其中年份末2位为00时,该算式可直接视为0,亦不必计算,减掉几道运算程序。
计算公式可依运算规则变通运用。例如“闰年-1”,可依规则移前移后,也可与其它调整值合并运算,如与世纪调整值-1合并为-2。
推算年首基数时,靠记忆(或记忆加指算法)比临场计算要快时,应采用前法。能记忆的计算数据尽量背诵记熟,最大限度地减少临场计算,以求快速。
可以自行设计便于心算任意年份年首基数的计算草式。还可以运用其它速算技巧如珠心算。
总之,灵活运用速算技巧必须以熟练掌握基本方法为基础,熟能生巧,活学活用才可创新,进而精益求精,达到准确快速合乎实用的目的。
结语:
基数法计算星期,是世界上沿用已久的方法,本文汇入笔者多年对星期速算方法的探求与使用心得,更具实用性。学习使用本文介绍的星期速算方法,应当以基数法速算星期的基本方法和邻近年份的计算为重点,重在日常实用。在熟练掌握一般方法的基础上,再求深入,作较远年份的星期推算。星期速算只有多用多练,多思多悟,才能由熟生巧,巧而至精。当年及邻近年份的星期推算一般可在3秒内完成,久远年份的星期计算应逐步加速,争取达到10秒以内。
速算星期貌似神奇,实则简单,一日学会,一劳永逸,一生受益,能为我们的生活、工作和学习带来便利,青少年会获益更大。包括家长在内,都不应该错过学习此法的机会。笔者自上世纪五十年代小学时期始用此法,已延续50余年,受益匪浅。在当今手机能查日历的时代,速算星期绝非无用,它是一种实用技能,随口而出,远较手机方便,远超手机日历存量;它还是一种大脑体操,一种精神力量,会使我们的生活更加丰富多彩。
如此简单易学方便实用的星期速算妙法,学与用,读者诸君大可一试。
1978年7月初稿,2014年3月第四次修改
(作者:DONGDING / ZHANGHUADONG)