谁能告诉我计算任意一年月日是星期几的方法啊?
用当天是几月几日星期几做底,然后算出今年离那年有几年零几天。
再用年数减去闰年数,乘365除再加上366乘闰年数再加上零的天数,最后除7,如是整数,就是当天是星期几就是那天是星期几;如不是整数,就要分两种情况:如果往后数(如2007年一月一日至2008年一月一日),余数是几,就用今天往后数几天,那天星期几就是你要求的那天是星期几;
如往前数,(如2008年一月一日至2007年一月一日)余数是几,就用今天往前数几天,那天星期几就是你要求的那天是星期几。
星期,又叫周,是一个时间单位,也是现在制定工作日、休息日的依据。
星期作为时间周期最早起源于巴比伦。现在世界通行的星期制是罗马皇帝君士坦丁大帝在公元321年3月7日正式确立的。
扩展资料
历史起源:星期作为时间周期最早起源于巴比伦。现在世界各国通用一星期七天的制度最早由罗马皇帝君士坦丁大帝制定,他在公元321年3月7日正式宣布7天为一周,这个制度一直沿用至今。而在中国,明末清初基督教在中国传播时,星期才逐渐被人们所知晓。
民国时期规定使用公历之后,星期才逐步普及起来。
星期在中国古称七曜。七曜在中国夏商周时期,是指日、月及五大行星等七个主要星体,是当时天文星象的重要组织成份。中国的七曜开始并未作为时间单位。
参考资料来源:百度百科——星期
2112年5月1日.星期日.
2212年5月1日是星期五。
2312年呢?是星期三。
这都用简单的方法推算出来的,虽然推算几百年前,后的一天是星期几,没有实际意义,还是有很多人感到有兴趣的。也是开发知识的一个侧面。
网页介绍的计算方法,多是蔡勒公式,麻烦,不适用。
很多人,并不喜欢那个代入那么多的参数的公式。非常希望找简单可行的计算方法。
这里就是用手算和心算,能够迅速的算出过去和未来任何一天是星期几,你愿意知道吗?
1 ; 从现百年中的元旦是星期几开始?
要想知道公历那一天是星期几? 必先知道该年首日,月首日是星期几?
从万年历查知,2001年,02年,03年,04年,05年的元旦是星期1,星期2,星期3,星期4,和星期6。
好了,我们并不想查表来得到, 那一年的元旦是星期几?我们要的是对应的计算公式。
根据2001年元旦是星期一给计算这百年每年的首日(元旦)是星期几带来了方便。
也就是年数加其中闰年数除7的余数, 也可用计算得出;
用公历年的末两位数乘1.25的积,取整,除7 的余数就是了。
比如2013年 13×1.25=16.25
取整 16 16÷7 余数 2(16减14更直接)
所以2013年元旦是星期2
又如2027年 27×1.25=33.75
取整 33 33 - 4×7 = 5
2027年的元旦 是星期5
这个馀数就叫“年代码”吧。指明了平年(365天)元旦是星期几的值。
闰年它减1为元旦的值。
例如;2012年是闰年 12×1.25=15 得整数的年代码。
整数; 15 15 -7×2=1
所以2012年年代码是1,元旦星期数是年代码减1 1-1=0 星期天
顺便说一下年数乘1.25后所得的积中,小数部份为0.25,0.5,0.75,说明这是闰年后的第一年,第二年,第三年,下一年得整数就是闰年了。
2 ; 年中的12个月首日为星期几?
元旦是星期几已经知道了,它和这一年其它12个月的月首日是星期几,有关联吗?
是!,它们之间,关系密切 。实际上只要确定元旦是星期几和当年是否闰年?就把整个全年各月首日是星期几给定义了。
2006-2009年各年中月中的首日(一日)星期之间关系
2 2006年 2007年 2008年(闰年) 2009年 月编号 月 份
星期日 星期一 星期三 (≠1月) 星期四 0 1,10月
星期一 星期二 星期四 星期五 6 5月
星期二 星期三 星期五 星期六 5 2,8月
星期三 星期四 星期六(≠2月) 星期日 4 2,3,11月
星期四 星期五 星期日 星期一 3 6月
星期五 星期六 星期一 星期二 2 9,12月
星期六 星期日 星期二 星期三 1 1, 4, 7月
如 2006,2007,2008,2009年的一月一日是星期日,星期一,星期二,星期四
闰年的一月在月编号1同4,7月。二月在月编号5同八月。
06年是平年如上表一月一日和十月一日是星期日,五月一日是星期一,八月一日是星期二,而二月三月十一月一日是星期三,六月是星期四,九月和十二月一日是星期五,四月和七月一日是星期六。推论05年是从星期六到星期五的,就是这种月次序记住就好,只是星期逐年逐变的。所以只要能定位 任一月首日的星期几,则各月首日是星期几就一目了然了,求某月某日是星期几应当说是不难了,所以这种关系必须掌握和记熟。怎么记?记在手指头的关节上。那就有了永不丢失真正的计算星期的万年历了。
3 ; 手指做计算工具
需要熟练记住一些数据,没别的办法,搞化学的就得背背元素周期表,同样道理,赿熟速度赿快。
有人为了计算一年某一天是星期几,而记下了全年的月代码 。我们的记月代码,可以测百年。甚至跨世纪,不值得吗!
我们可以采用左手食指做工具,七天为一周期,把“月代码”“年代码”,都记在左手食指上,它“上,下“关节共有七个部位。成为以0到6循环圈。弯曲的食指,非常容易被姆指在这关节上下移动,存取数据和运算。
最关键的是把关节上的代码逆时针从0到6每个关节上的月份次序排好,关节码上的月份是最基本的数据,需要记熟的,否则,所谓心算和手算就无意义。从关节0做2000年首日代码(只是代码,闰年),1处做01年,也就是说01年的“年代码”是一,把要测定某年可用逐一的数(shu)年的方法,或者用计算法定位在某一月上,该月的首日就是星期日。它们的关系非常清楚,这个星期日标志月定位了其它各月首日的星期几。我们以2001年做例,年代码为1,说明四,七月的首日是星期日,顺时针元旦和十月一日是星期一,五一是星期二,八一是星期三,,,, 02年的年代码为2,九月和十二月首日是星期日,四,七月首日是星期一,元旦是星期二,以此类推,循环百年,测百年。
左手食指的上,下关节:“月代码”“年代码”示意图
84年 83年
。。 。。 。。
11年 10年
06年 05年 04年
手背和上关节 (1,10月) (5月) (8月)
0 6 5(年代码)
指根 |========|=======|========|4 指尖(2,3,11月09年15年
1 2 3
(4,7月)(9,12月) (6月)
(20xx年) 01年 02年 03年
07年 08年
12年 13年 14年
上图可以看出,2006年1月和10月1日是星期日,顺序五一是星期一,八一是星期二,2,3,11月是期3。 6月是期4。 9月12月是期5。 4月7月是期六。
计算任一年某日 如2035年8月23日,该年不是闰年 解:年代码35×1.25=43.75 43-6×7=1
元旦是星期一,五一是星期二, 八月一日是星期三,(其月中的1,8 ,15,22,29日都是星期三。)可以 用23-21=2 即相当是八月二日是星期四。
4 计算“年代码”
1 ;找出年代码上有很多种方法,一种是从食指内根处,即年代码为1,也是01年,逆时针数1年进1个 关节,闰年(即4 的倍数的年)进2个关节,逐次数到所要求的年份。对大数据可减28,56,84(28是循环周期,是年代码的模)处理简化后计算是方便的。比如2030年就是30-28=2,2070年70-56=14,14+3闰 用7模化为3
2 ;另一种是计算即;该年后两位数乘1.25 积的整数部份除7所得的馀数(即以7为模)
以77年为例;77×1.25=96.25 96 -84=12 12-7=5 馀5
简便算法还有77+19(77年中的闰年数)用7模化,77为0,19为5,0+5=5
当然 能够心算那是更好。经常计算会记住一些典型的码,我就把代码6是11,22,33,44年, 代码5是55,66,77,88年,代码4是99年等,记的很牢,当然,还有一些。
5 计算星期几要注意的方面
不管你怎么算,你要算那年的,那月的,那日的,心算也好,手算也好,计算也好 ,要把“年代码”,准确的放在对号的关节上,该关节上的月份的首日(一日)就被定位成星期天,
计算过程中,千万别忘了这个首日是星期天的标志月的关节,
要测那个月的某日,从那月起为1日顺时针数日到位,与那个标志的星期日的位差定星期几。 说是这么说,真正大数字日子要一一的数可太苯了,可以根据数情况从1,8,15,22,29,起数,也可减7,14,21,28,数其不超过6的差数。就轻松多了。闰年要记住一月按四,七月计算,二月按八月计算,
如能再增加点记住的如“年代码1就是4,7月”2就是9.12月.3就是6月....即马上知道当年的星期月,这可就更流利了。
当然,按上述原理,做成双圆盘,即可推百年,做成三圆盘则可跨世纪。但使人兴趣索然,还容易丢失,掌握了方法,就不会丢失,这种手算我想还是很“huyou"人的。
上面讲的是2000到2099年的推算,能准确得出结果,不出错误也需要下一番大功夫。
有很多地方可能还没说到位,内中可能还有很多窍门,还得靠你自己琢磨。
6;计算跨世纪的某一天是星期几?
只要会计算2000到2099年的某一天是星期几,就可以直接算出跨世纪该天星期几。
先举例子:
1733年5月1日是星期几?
计算2033年5月1日 是星期日 加5 等于星期五 即1733年5月1日是星期五
1822年8月8日是星期几?
2022年8月8日是 星期1 加3 等于星期四 即1822年8月8日是星期四
1935年4月15日是星期几?
2035年4月15日是 星期天 加1 等于星期一 即1935年4月15日星期一
只要求出2000到2099年某年月日的星期几加5,3,1 即是17,18,19某某年该年月日的星期几
这种算法正确吗?可用蔡勒公式证明;
W=[C/4]-2C+Y+[Y/4]+[13×(M+1)/5]+d-1 蔡勒公式
先代入20y年 m月 d日
W(20)=[20/4]-2×20+y+[y/4]+[13×(m+1)/5]+d -1.....1式
代入17y年 m月 d日
W(17)=[17/4]-2×17+.....................同上.............2式
W(20)=5-40=-35+K
W(17)=4-34=-30+K
W(17)-W(20)=-30-(-35)=5 所以证明17y年m月d日是20y年m月d日 加5
再说18y年m月d日
W(18)=[18/4]-2×18= - 32
W(18)- W(20)= -32 -(-35)= 3 所以证明18y年m月d日是20y年m月d日 加3
再证明19y年的
W(19)=[19/4]- 2×19=-34
W(19)-w(20)=-34-(-35)=1 所以证明19y年m月d日是20y年m月d日 加 1 。
值得提出的这个算法对1700,1800,1900年这几个年都不像2000年是闰年的 ,所以算这几个00年的一月要同十月,二月同三月或十一月计算。否则跟着2000年一,二月算就把它们算成闰年的星期了。
星期回归大周期是400年
蔡勒公式中说明了这个数学式是400年是一个大循环周期。
所以21**年的星期 序列和17**年是相同的,
同理22**年对18**年,23**年与!9**年 是相同的。
这样只要你愿意,侭管算,不过是20**年加5,3,1 而已但希望不是笔算,而是心算和手算。
黑色星期五
计算中发现点有趣的现象,目前网上的万年历有的加了黑色星期五的标志,即是星期五和13日赶到同一天,是个不吉利的日子吧!但是,谁要想专挑出这个日子在那年在那月?一定不容易。那个月有黑色星期五呢?答案是那个月的首日(1日)是星期天,明白了吧,年代码就是找这个月的,如01年的4,7月,02年的9,12月,12年的1,4,7月,2012年中,一年中有三个黑色星期五。算着玩而已,可别认真。
我"huyou"了这些东东,就告一个段落吧!
验 证
我写完上面的文章后,还怕数据上出问题,尤其开首那几个跨世纪的例子。没有自信,做了验证。
2112年5月1日 手算结果是星期 日
2212 五
2312 三
W=[C/4]-2C+Y+[Y/4]+[13×(M+1)/5]+d-1 蔡勒公式
代入
W(2112)=5-42+12+3+(13*6/5)+1-1=-7=0 0
W(2212)=5-44+12+3+(13*6/5)+1-1=-9 加14 = 5
W(2312)=5-46 =-11 14 = 3
难道是偶合吗?
2334年5月1日 手算 星期二
W=5-46+34+8+15=16 16-14=2
1815年6月15日滑铁卢手算是星期四
W(1815)=4-36+15+3+(13*7/5)+14=4.2 4
不会有什么特例了吧!
2023-06-25
再用年数减去闰年数,乘365除再加上366乘闰年数再加上零的天数,最后除7,如是整数,就是当天是星期几就是那天是星期几;如不是整数,就要分两种情况:如果往后数(如2007年一月一日至2008年一月一日),余数是几,就用今天往后数几天,那天星期几就是你要求的那天是星期几;如往前数,(如2008年一月一日至2007年一月一日)余数是几,就用今天往前数几天,那天星期几就是你要求的那天是星期几。
年数积:5*(X-1)/28的小数部分乘7的积(取整)(X表示公元纪年数)
天数积:Y/7的余数(Y表示当年已过天数)
例如:2019年4月24日是周几?
5*(2019-1)/28=360.3571429,取小数部分0.3571429*7=2.5,取整2为年数积
(31+28+31+24)/7=16.....2,故天积数为2.(上半年单数月31天,下半年双数月31天,二月28天,一年365天)
n=2+2=4,故这天周三。
再例:2008年5月12日是周几?
5*(2008-1)/28=358.3928571,取小数部分0.3928571*7=2.75,取整2为年数积
(31+29+31+30+12)/7=17.....0,故天积数为0.(闰年二月29天)
n=2+0=2,故这天周一。