知道公历日期计算星期
小学趣味数学——根据年、月、日推算是星期几的公式
小学趣味数学——根据年、月、日推算是星期几的公式 有时候,想知道公元某年某月某日是星期几,可以用下面的公式算出来:这里的方括号表示只取商的整数部分。
式中:x :这一年是公元多少年。
y :这一天是这一年的第几天。
s :星期几。
不过要先除以7,再取余数。
没有余数是星期日,余数是1、2、3、4、5、6,分别是星期一、星期二、星期三、星期四、星期五、星期六。
比如,2010年国庆节(10月1日)是星期几?x =2010。
y =31+28+31+30+31+30+31+31+30+1=31×5+30×3+28+1=274。
s =2010-1+502-20+5+274=2770,2770÷7余5。
所以,2010年国庆节是星期五。
y x x x x s +⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡--⎥⎦⎤⎢⎣⎡-+-=40011001411如果,你只想知道这个公式怎样用,到这儿就可以了。
而要想知道这个公式的道理是什么,那可就说来话长了。
“星期制”是公元321年3月7日,古罗马皇帝君士坦丁宣布开始实行的,并且规定这一天为星期一。
实际上,就是把公元元年元旦(公元1年1月1日)规定为星期一。
(相当于公式中的x=1,y=1,所以s=1。
)通常1年有365天,365÷7=52……1,就是说比52个星期多1天。
所以,同一个日期,下一年是星期几,就要比上一年向后推1天。
比如,上一年元旦是星期三,下一年元旦就是星期四。
“通常每过1年,把同一日期是星期几向后推1天”,是理解这个公式的关键。
要想知道某年某月某日是星期几,首先,要知道这一年元旦以公元元年元旦是星期一为起点,已经把星期几向后推了多少天,还要知道这一天是这一年的第几天。
而要知道这一年元旦已经把星期几向后推了多少天,可以从公元元年到这一年已经过了多少年算起,先按1年向后推1天计算,再根据闰年的规定进行调整。
闰年的规定是:年份是4的倍数的一般都是闰年,其中,年份是整百数的一般不是闰年,只有年份是400的倍数的才是闰年。
给出年月日,计算星期几--算法及算法来历
= 2524;
2524 / 7 = 360……4.这和实际是一致的。
公式(5)已经是从年、月、日来算星期几的公式了,但它还不是最简练的,对于年份的处理还有改进的方法。我们先来用这个公式算出每个世纪第一年3月1日的星期,列表如下:
因为其中的-7和(M-1)*28两项都可以被7整除,所以去掉这两项,W除以7的余数不变,公式变成:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + [ 13 * (M+1) / 5 ] + d.
(5)
D = [ 13 * (M+1) / 5 ] - 7 + (M-1) * 28 + d. (3≤M≤14) (4)
上面计算星期几的公式,也就可以进一步简化成:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + [ 13 * (M+1) / 5 ] - 7 + (M-1) * 28 + d.
(Y-1)*365 ≡ Y-1 (mod 7).
其中,≡是数论中表示同余的符号,mod 7的意思是指在用7作模数(也就是除数)的情况下≡号两边的数是同余的。因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到了那个著名的、也是最常见到的计算星期几的公式:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D. (2)
显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,
利用公式计算某一天是星期几?
利用公式计算某一天是星期几?
如果忘了今天是星期几,怎么办?可以查看手机,因为手机带有日期功能(万年历)。
但是,手机的万年历只能查询前后几十年的时间。
如果想知道数百年前或者数百年后某一天是星期几?又该怎么办?下面介绍两种方法(公式),只需要知道具体的日期(阳历),就可以很快推导出这一天是星期几?
第一种方法(公式):
其中:[]是取整运算即截取该数的整数部分,mod是求余运算;
W:星期,0~6分别对应星期日、星期一、星期二、星期三、星期四、星期五、星期六;
c:年份的前两位数字;
y:年份的后两位数字;
m:月份(注意:3≤m≤14,即某一年的1月和2月要使用上一年的13月和14月来计算,如1989年2月6日要看作是1988年14月6日,对应的值分别是c=19,y=88,m=14,d=6);
d:日期。
如果时间是在1582年10月4日或之前,公式则为:
比如要推导2018年11月22日(c=20,y=18,m=11,d=22)
是星期几?
计算:
即2018年11月22日是星期四。
第二种方法(公式):
其中:[]是取整运算即截取该数的整数部分,mod是求余运算;
W表示星期,0~6分别对应星期日、星期一、星期二、星期三、星期四、星期五、星期六;
Y表示年份;
D表示这一天在该年中是第几天。
比如:要推导2018年11月22日是星期几?
计算:
Y=2018
D=31+28+31+30+31+30+31+31+30+31+22=326
即2018年11月22日是星期四。
计算某天是星期几
计算某天是星期几(含六个例程)计算某天是星期几,最常见的公式: W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
计算某天是星期几,最常见的公式:W=[Y-1]+[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400]+DY是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
最好用的是蔡勒公式:W=[C/4]-2C+y+[y/4]+[13*(M+1)/5]+d-1C是世纪数减一,y是年份后两位,M是月份,d是日数。
1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值。
两个公式中的[...]均指只取计算结果的整数部分。
算出来的W除以7,余数是几就是星期几。
如果余数是0,则为星期日。
星期制度是一种有古老传统的制度。
据说因为《圣经〃创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。
从实际的角度来讲,以七天为一个周期,长短也比较合适。
所以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的“十旬休暇”,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。
在日常生活中,我们常常遇到要知道某一天是星期几的问题。
有时候,我们还想知道历史上某一天是星期几。
通常,解决这个方法的有效办法是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。
假如是想在计算机编程中计算某一天是星期几,预先把一本万年历存进去就更不现实了。
这时候是不是有办法通过什么公式,从年月日推出这一天是星期几呢?答案是肯定的。
其实我们也常常在这样做。
我们先举一个简单的例子。
比如,知道了2004年5月1日是星期六,那么2004年5月31日“世界无烟日”是星期几就不难推算出来。
计算任何一个日期的星期数
星期数的计算懂得公历日期变化规律的人都可以将一个日期的星期数计算出来,如果不知道正确的方法可能会很是麻烦。
现在我们给出一个方便的计算星期数的公式,为此首先规定:星期日=0,星期一=1,星期二=2,星期三=3,星期四=4,星期五=5,星期六=6另外注意闰年比平年多加的一天不是年头也不是年尾,而是在2月29日,所以为了计算方便,我们把3月作为一年的第一个月,4月作为一年的第二个月……而1月、2月则分别为去年的第十一个月和第十二个月。
作了这样的规定之后,1997年7月1日就要写为1997年“5月”1日,2000年1月2日就要写为1999年“11月”2日。
现在假定给出一个日期:N年m月d日(年份N=100c+y,其中c为世纪数,y为年代数),则该日期的星期数W=d+[ (13m-1)]+y+[ y]+[ c]-2c(mod7)其中方括号表示不超过这个数的最大整数,mod为数学符号,如a(modb)表示一个数,此数在0到b范围内(若b小于零,则在b到0范围内),若a∈[0,b),则a(modb) =a,若a不在0到b范围内,则a(modb)等于a加或减b的整数倍后处于0到b范围内的一个值。
这里值得注意的是,目前国际通用的公历是教皇格里高利十三实行的。
当时他召集了很多学者和僧侣讨论历法改革问题,决定采用业余天文学家利里奥的方案,没四百年去掉三个闰日。
公元1582年格里高利颁发改历的命令:(1)把1582年10月4日后的一天改为1582年10月25日;(2)那些世纪数不能被4整除的世纪年,如1700、1800、1900、2100、……不再作为闰年,仍算为平年。
这两条规定至为重要,第一条规定实质上把春分固定在3月21日左右,解决了日历与天时不符合的矛盾,第二条规定使历法的精度大大提高,保证了这种历法在相当长的时间里仍能实用。
根据这项规定,每400年中有97个闰年,总天数为365×400+97=146097(天)因此平均每年的长度为146097÷400=365.2425(天)这与回归年实际值365.2422天相差仅有0.0003天,换句话说,要经过3300多年,两者才有一天的相差。
【高中数学】两种纪年的换算和星期数的求法
【高中数学】两种纪年的换算和星期数的求法现在,人们只要查看万年历,就可以知道某一年的公农历两种纪年的结果,还可以知道某日是星期几。
例如,1949年是己丑年,该年的10月1日是星期六;张之洞卒于1909年,这一年是己酉年(宣统元年)。
然而,万年历并不容易获得。
你知道上面的问题吗?剩下的你能问一下吗?答案是肯定的。
一、公历纪年与农历纪年的换算现在,世界上普遍使用公历,也称为公历。
在中国,它也被称为公历(在古代中国,太阳被视为阳,月亮被视为阴)。
根据太阳绕地球运行365天和1/4天的时间,经过长期的不断改进和演变,教宗格雷戈里十三世终于在原凯撒历的基础上于1582年10月15日颁布实施。
1752年9月14日起,英国及其殖民地国家开始实施。
与公历同排在我国日历上的农历,是我们国家所特有的一种“干支纪年历”,又叫阴历。
它是把一个朔望月,也就是相邻两次朔月(或望月即满月)的时间间隔二十九点五三零六天,作为一个农历月,采用十“天干”与十二“地支”搭配成60年一循环的周期性“干支纪年历”。
为了便于理解和运用,我们给出天干地支搭配表如下:1甲子2乙丑3丙寅4丁卯5戊辰6己巳78辛未9壬申10癸酉11甲戌12乙亥13丙子14丁丑15戊寅16己卯17庚辰18辛巳19壬午癸未21甲申22乙酉23丙戌24丁亥25戊子26己丑27庚寅28辛卯29壬辰30癸巳31甲午3233丙申34丁酉35戊戌36己亥37庚子38辛丑39壬寅40癸卯41甲辰42乙巳43丙午44丁未戊申46己酉47庚戌48辛亥49壬子50癸丑51甲寅52乙卯53丙辰54丁巳55戊午56己未5758辛酉59壬戌60癸亥根据上表的顺序,每年使用一对干枝。
这个年表叫做“干支年表”。
根据古代文献记载,干支年表最晚在东汉初被广泛使用,至今仍在使用干支纪年在我国历史学中广泛使用,很多历史事件的年代常用它来表示.例如,甲午战争、戊戌变法、辛亥革命等等.在“分支机构列表”和历史知识的帮助下,可以通过公式x=n+3+60m转换日历年和分支机构年(如果你不记得,你需要自己安排)。
如何计算某一天是星期几
如何计算某一天是星期几在计算机学科中,我们可以用一些算法和公式来确定其中一天是星期几。
一种常用的算法是蔡勒公式(Zeller's congruence)。
蔡勒公式是由蔡耳(Christian Zeller)于1883年提出的一种公式,它可以在不使用计算机的情况下,快速计算出给定日期的星期几。
蔡勒公式的数学表达式如下:h=(q+(13*(m+1)/5)+K+K/4+J/4+5*J)%7其中h是星期几,取值范围为0到6,分别表示星期六到星期五;q是日期中的天数,取值范围为1到31;m是月份,如果是1月或2月,需要将其转换为13和14月,并将年份减少1,即转换为前一年的13月和14月;K是年份的最后两位数;J是年份的前两位数,需要注意的是,公式中J除以4的结果是整数除法,即只取整数部分。
首先,我们需要确定给定日期的年份(J)、月份(m)和天数(q)。
然后,我们对日期的月份和年份进行转换(如果需要),使用蔡勒公式计算出h的值。
根据h的值,我们可以得知给定日期是星期几。
让我们通过一个例子来说明如何计算其中一天是星期几。
假设我们要计算2024年5月20日是星期几。
首先我们将年份拆分成J和K。
对于2024年,J=20,K=22然后我们将月份进行转换,因为5月属于前一年的13月,所以我们需要将年份减少1,转换成前一年的13月和14月。
所以m=13接下来,我们需要计算h的值,根据蔡勒公式的表达式,我们可以将这个过程分解为以下步骤:1.计算(13*(m+1)/5)=(13*(13+1)/5)=522.计算K+K/4=22+22/4=27(整数除法)3.计算J/4=20/4=5(整数除法)4.计算5*J=5*20=1005.所以h=(q+52+27+5+100)%7=(20+52+27+5+100)%7=204%7=5最后,根据h的值,我们得出结论,2024年5月20日是星期五蔡勒公式是一种简单而有效的计算其中一天是星期几的方法。
【免费下载】 阳历中日期与星期的对应规律
阳历中日期与星期的对应规律阳历,是世界各国通用的历法,也是我国通用的历法。
现行阳历由于世界通用,因此又称为公历。
阳历历法中的时间分类单位有世纪、年、月、日、星期等,其中,“某月某日是星期几”是在日常生活中用得非常多的,人们总是或多或少要提到它。
阳历一年有365天(闰年366天),如果一天一天地记某月某日是星期几,恐怕没有哪个人能记住。
但是,细心的人会发现,在阳历的日历中,日期(即某月某日)与星期的对应是有规律的。
在同一个年份中,在不同的年份中,日期与星期的对应都是有规律的。
下面分别叙述。
第一部分:同一年份中日期与星期的对应规律1、在同一个年份中,不论是平年还是闰年,有以下共同规律:(1)3月1日至3月30日是星期几,11月1日至11月30日也一定是星期几;(2)4月1日至4月30日是星期几,7月1日至7月30日也一定是星期几;(3)9月1日至9月30日是星期几,12月1日至12月30日也一定是星期几。
2、如果年份为平年,那么除了上述共同规律外,还有以下规律:(1)1月1日至1月31日是星期几,10月1日至10月31日也一定是星期几;(2)2月1日至2月28日是星期几,3月1日至3月28日、11月1日至11月28日也一定是星期几;(3)1月1日是星期几,12月31日也一定是星期几。
3、如果年份为闰年,那么除了上述共同规律外,还有以下规律:(1)1月1日至1月30日是星期几,4月1日至4月30日、7月1日至7月30日也一定是星期几;(2)2月1日至2月29日是星期几,8月1日至8月29日也一定是星期几;(3)2月1日是星期几,2月29日也一定是星期几。
出现上述规律,道理很简单,就是因为它们之间的间隔天数都是7的倍数,而一个星期恰好为7天,因此过了一定的天数,星期便重复了。
第二部分:不同年份中日期与星期的对应规律。
每隔28年,阳历中的同一个日期所对应的星期完全相同,也就是说,今年的日历,在过了28年之后还可以重新使用,某月某日所对应的星期是完全相同的,只是年份不同而已。
EXCEL表格里如何根据日期计算出对应的星期,5种方法任你选
EXCEL表格里如何根据日期计算出对应的星期,5种方法任你选在EXCEL表格里,多种数据报表都含有日期,日期的处理还是很重要的,我们来看下在EXCEL表格里如何将日期显示成星期的格式,可以通过单元格格式的设置,或是日期函数都能实现,下面是具体的操作方法:一、单元格格式的设置(最简单设置)打开EXCEL表格,选中表格里的日期,在键盘上按下“CTRL+1”或是通过鼠标的右键菜单打开“单元格格式设置”窗口,在分类中选择“日期”,在右侧的类型里选择“星期三”或“周三”这两种格式中的一种,单元格内日期显示成对应的星期。
二、自定义格式设置选中日期单元格,打开单元格格式设置窗口,在自定义类型中输入对应的类型,日期转换成对应的星期格式。
下面的自定义类型,需要靠大家记忆了,不光是在自定义类型中会使用,在函数中同样通过类型显示出对应的星期格式。
AAAA:显示成中文星期,如星期一、星期二等样式。
AAA:显示成中文星期的简称,如一、二等样式。
DDDD:显示成英文星期,如Tuesday、Monday等样式。
DDD:显示成英文星期简称,如Tue、Mon等样式。
三、日期+星期格式在自定义类型中输入“YYYY/MM/DD AAAA”即返回“2023/02/21 星期二”这样的即带日期又带星期的格式。
这里修改“YYYY/MM/DD”可改变前面日期格式的显示样式。
“AAAA”同上方的类型显示一样,这里也可以根据实际的需要修改为“AAA、DDDD、DDD”,即上方的星期显示格式。
四、TEXT函数在单元格内输入函数公式“=TEXT(A13,"DDDD"),这里通过TEXT函数将A13的日期按"DDDD"类型显示出来。
这里的“DDDD”可以修改为上方四个类型中的任何一个。
在上方的函数公式里,如果想将星期几显示成周几,还可以在函数中在类型的前面添加文字,如函数公式“=TEXT(A13,"周AAA"),单元格内星期显示成“周一”。
根据日期知道当天是星期几的手动计算方法
公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某 年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即 只要整数部分。(C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y 均按上一年取值。) 算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。 以2049年10月1日(100周年国庆)为例,用蔡勒(Zeller)公式进行计算,过程如下: 蔡勒(Zeller)公式: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 =49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1 =49+[12.25]+5-40+[28.6] =49+12+5-40+28 =54 (除以7余5) 即2049年10月1日(100周年国庆)是星期5。
这篇文章主要给大家介绍了关于sqlserver利用spspaceused如何查看表记录存在不准确情况的相关资料文中通过示例代码介绍的非常详细对大家学习或者使用sqlserver具有一定的参考学习价值需要的朋友们下面来一起学习学习吧
根据日期知道当天是星期几的手=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
日期提取星期几的原理
日期提取星期几的原理
日期提取星期几的原理主要是基于日期与对应星期几之间的固定关系。
具体原理如下:
1. 根据格里历(Gregorian calendar),地球围绕太阳公转一周总共需要365.2425天(平均),即一年有365天、5小时、49分钟和12秒。
2. 星期的定义是每7天为一个周期,即周期性重复。
因此,一个日期和一个星期几之间有一个恒定的偏移量。
3. 以格里历的规律为基础,可以通过数学算法推算任意一个日期是星期几。
这个算法是根据已知的起始日期和对应的星期几来计算的。
4. 起始日期可以通过历史记录或国际标准来确定。
最常用的是格里历的一月一日为星期六(或星期日)作为起点。
5. 算法通过计算经过的天数,并除以7取余数来确定该日期对应的星期几。
余数为0表示星期六(或星期日),依次类推,余数为1表示星期日(或星期一),以此类推。
6. 但是,需要注意的是,算法会在闰年(每4年一次)和世纪年份的闰年(每400年一次)上做一些微调。
综上所述,日期提取星期几的原理是基于格里历的周期性和日期与星期几之间的固定关系。
通过数学算法和起始日期,可以准确计算出任意一个日期对应的星期几。
计算经过的日期和算星期几
计算经过的日期和算星期几
首先,我们需要理解日期的概念。
在常见的日历系统中,一年被分为12个月,每个月有不同的天数。
通常情况下,一周有7天,从周一到周日。
1.计算经过的日期:
1.1加减天数:要计算经过n天后的日期,可以通过将原日期的天数加上n来得到新的日期。
但是需要注意,如果加上n之后超出了该月的最大天数,需要更新月份和年份。
1.2加减月份:要计算经过n个月后的日期,可以将原日期的月份加上n,并根据需要更新年份。
同样,需要注意如果加上n之后超出了12个月,则需要更新年份。
1.3加减年份:要计算经过n年后的日期,可以将原日期的年份加上n。
需要注意的是,闰年的处理需要根据闰年规则进行。
2.确定星期几:
要确定给定日期是星期几,可以使用一些算法和公式。
2.1 Zeller's Congruence:这是一个经典的算法,用于确定公历日期对应的星期几。
它基于下面的公式:
h=(q+26(m+1)/10+k+k/4+j/4+5j)%7
其中,h是星期几(0表示星期六,1表示星期日,……,6表示星期五);q是日期;m是月份(3表示3月,4表示4月,……,14表示2月);k是年份的最后两位数;j是年份的前两位数。
2.2 Doomsday Algorithm:这是另一种用于确定公历日期对应的星期几的算法。
这个算法基于数学推导,利用一些特定的日期来计算其他日期的星期几。
以上就是计算经过的日期和确定星期几的一些常用算法和公式。
使用这些算法和公式,我们可以快速准确地计算经过的日期和星期几。
怎样快速根据日期推算星期
怎样快速根据日期推算星期方法一:1.日期代码指的是日期数,如3月18号,日期代码为18。
4月7号,日期代码为7。
2.月份代码(需要小小记忆)五月是 0八月是 1二月三月十一月是 2六月是 3九月十二月是4四月七月是5一月十月是 6如果遇到闰年则二月代码变为1,一月代码变为5,其它不变。
即,非闰年的月份代码为622503 514624,闰年的月份代码为512503 514624。
3.年份代码举个例子 2010年的代码,我们用尾数10除以4(忽略余数)再加上10得到数字12,再用12除以7,得到的余数5就是2010年的代码。
也就是说,心算出2000到2099任意年份的代码,只需将其后两位数X除以4(忽略余数),然后与X相加,并除以7就可以了,得到的余数就是其年份代码。
10年的年份代码是5,11年年份代码为6。
4.秒算任意日期的星期数如,我们算一下2010年4月25日日期代码25月份代码5年份代码5日期代码+月份代码+年份代码=25+5+5=3535是7的倍数,所以2010年4月25日是星期日再比如算一下2010年10月1日日期代码1月份代码6年份代码5日期代码+月份代码+年份代码=1+6+5=1212除以7余5,所以2010年10月1日是星期五如果得到的代码和是小于7的数,那么此数直接是星期数如果得到的代码和是大于7的数,那么将该数除以7得到的余数为星期数。
原理:蔡勒公式W=[C/4]-2C+y+[y/4]+[26(m+1)/10]+d-1 (其中[ ]为取整符号)∙其中,W是所求日期的星期数.如果求得的数大于7,可以减去7的倍数,直到余数小于7为止.c是公元年份的前两位数字,y是已知公元年份的后两位数字;m是月数,d是日数.方括[ ]表示只截取该数的整数部分。
∙还有一个特别要注意的地方:所求的月份如果是1月或2月,则应视为前一年的13月或14月.所以公式中m 的取值范围不是1-12,而是3-14.∙大家读懂后,我给出一些历史时期,以便读者进行验算.(1).美国总统林肯遇刺,1865年4月14日,星期5;(2).美国独立纪念日,1776年7月4日,星期日;(3).日本偷袭珍珠港,1941年1941年12月7日;∙最后还有一点,工元1582年罗马教皇曾经下令修改历法,把这一年的10月4日(星期4)的下一天改为10月15日.所以在1582年以前的日子,不能加以套用.冬日夜冷继续闲读,近日看了本《古代文化常识百话》,其中有篇是关于公历年份是如何换算成农年的干支纪年的,蛮有意思的,特记之。
一个计算星期几的简单程序
一个计算星期几的简单程序一个计算星期几的简单程序2006年09月03日星期日 16:06通常我们只知道生活当天的前后几天是星期几,即便是翻日历,也只能知道有限日期的星期数。
那么有没有一种方法可以让我们知道任何一天是星期几呢?有,下面我将向大家介绍一种方法,用以编写万年历的程序。
首先我们必须约定一些法则,我们用Y、M、D分别表示年、月、日,用数字0-6分别表示星期日-星期六,这样我们就可以开始推导我们的公式了。
我们知道2002年9月1号为星期日,如果我们要想知道2002年9月10号为星期几,可以这样算:(0+(10-1))%7=(0+9)%7=2,即星期二。
同样可算得2002年9月20号为:(0+(20-1))%7=(0+19)%7=5,即星期五。
但是这样算需要把日期减1,不太方便,为了解决这个问题,我们可以假设每个月有一个0号,由于2002年9月1号为星期日,那么2002年9月0号为星期六,这样算9月10号,只需代入10既(6+10)%7=2。
事实上,9月0号也就是8月31号,每个月0号的星期数实际上就是每个月1号的前一天的星期数。
我把这个星期数称之为每个月的代码。
有了这个代码,要算这个月任一天的星期数都好办了。
以上讨论的是一年中每个月的代码,事实上对于每年也有一个代码,这个代码就是每年1月0号(即1月1号的前一天)的星期数,也就是一月份的代码。
如果我们能够找到每年的代码之间的关系,那么要计算万年历就易如反掌了。
(一)推算年的代码公式我们都知道,平年一年有365天,即52周多1天。
闰年为366天即52周多2天。
我们先只考虑平年的情况。
假设第N年的代码为W,则第N+1年的代码为(W+1)%7,而第N+K年的代码则为(W+K)%7。
这是因为从第N年到第N+K年共经过了K年,每过一年也就是过了52周余1天,经过K年也就是过了52*K周余K天,将多余的天数K加上第N年的代码W再对7取模,所得也就是第N+K年的代码了。
某年某月某日星期几的计算方法
某年某月某日星期几的计算方法!首先确定公历(阳歷)12个月,每个月的代码数即:每个月号前一天是星期几,本月代码数就是几,如果是星期天,代码数就是0。
那个月几号是星期几?就把几号加上本月代码数后被7除,餘几就是星期几,除尽就是星期天。
如:2006年从1月---12月以次代码数为:6、2、2、5、0、3、5、1、4、6、2、4。
如果计算10月1日星期几?就把1号加上10月代码6等於7,能被7除尽,10月1日就是星期天。
再如:7月21日星期几?就把21加上7月代码数5等於26,被7除后餘5,7月21日就是星期五(因为21本身就能被7除尽,就不用再加代码数了,代码数是几就是星期几)。
注:如果要计算下一年每月代码数,可在上一年每月代码数上加1即可。
阳歷一年中大月为31天,小月为30天,平月(2月)为28天,闰月年为29天。
闰月年就是,年数能被4除尽的为闰月年,闰月年就要在2月加1天(2月变成29天)。
闰月年每月的代码数除1月、2月在上一年同月代码数上加1外,其他月份都在上年同月代码数上加2即可;闰月年的下一年每月的代码数除1月、2月在上一年同月代码数上加2外,其他月份在上年同月代码数上加1即可。
想知道某年某月某日星期几的计算方法?注:你要想查某年、某月、某日、星期几?如查:(1)、1949年10月1日星期几?1、先查1949年代码数为5;2、再查10月代码数为0;3、后查1日代码数为1。
4、然后把年、月、日代码数相加得6再除7於6、(5+0+1)/7=6、即星期六。
(被7除余几,就是星期几);5、括弧年份能被4除尽为闰年, 闰年1、2月代码数以括弧为准。
(2)、要查:1963年7月29日,星期几?经查代码数年为1、月为6、日为1;即:(1+6+1)/7=1,被7除余1,这天就是星期一。
根据年月日推算是星期几的公式
根据年月日推算是星期几的公式有时候,想知道公元某年某月某日是星期几,可以用下面的公式算出来:这里的方括号表示只取商的整数部分。
式中:x :这一年是公元多少年。
y :这一天是这一年的第几天。
s :星期几。
不过要先除以7,再取余数。
没有余数是星期日,余数是1、2、3、4、5、6,分别是星期一、星期二、星期三、星期四、星期五、星期六。
比如,2010年国庆节(10月1日)是星期几?x =2010。
y =31+28+31+30+31+30+31+31+30+1=31×5+30×3+28+1=274。
s =2010-1+502-20+5+274=2770,2770÷7余5。
所以,2010年国庆节是星期五。
如果,你只想知道这个公式怎样用,到这儿就可以了。
而要想知道这个公式的道理是什么,那可就说来话长了。
“星期制”是公元321年3月7日,古罗马皇帝君士坦丁宣布开始实行的,并且规定这一天为星期一。
实际上,就是把公元元年元旦(公元1年1月1日)规定为星期一。
(相当于公式中的x =1,y =1,所以s =1。
)通常1年有365天,365÷7=52……1,就是说比52个星期多1天。
所以,同一个日期,下一年是星期几,就要比上一年向后推1天。
比如,上一年元旦是星期三,下一年元旦就是星期四。
“通常每过1年,把同一日期是星期几向后推1天”,是理解这个公式的关键。
要想知道某年某月某日是星期几,首先,要知道这一年元旦以公元元年元旦是星期一为起点,已经把星期几向后推了多少天,还要知道这一天是这一年的第几天。
而要知道这一年元旦已经把星期几向后推了多少天,可以从公元元年到这一年已经过了多少年算起,先按1年向后推1天计算,再根据闰年的规定进行调整。
闰年的规定是:年份是4的倍数的一般都是闰年,其中,年份是整百数的y x x x x s +⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡--⎥⎦⎤⎢⎣⎡-+-=40011001411一般不是闰年,只有年份是400的倍数的才是闰年。
星期的计算公式范文
星期的计算公式范文
1.按照日历周历法计算星期:
日历周历法是最常用的日期计算方法,以一周七天为周期,星期一为
起始点。
按照这种方法,星期的计算公式为:
星期=(日期的天数-1)÷7+1
其中,日期的天数是指从年的1月1日开始计算,到指定日期的天数。
例如,计算2024年5月15日是星期几:
所以,2024年5月15日是星期二
2.按照ISO周历法计算星期:
ISO周历法是按照国际标准化组织(ISO)制定的一种日期计算方法,以一周七天为周期,星期一为起始点。
按照这种方法,星期的计算公式为:星期=(日期的天数-星期减数)÷7+1
其中,星期减数是指离最接近的星期一的天数。
通常,星期减数为3
或4、如果星期减数为3,那么星期减数就是指距离最近的上一个星期一
的天数;如果星期减数为4,那么星期减数就是指距离最近的上一个星期
四的天数。
例如,计算2024年5月15日是星期几:
星期减数=3
所以,2024年5月15日是星期日。
需要注意的是,不同地区可能采用不同的计算方法来确定星期,所以上述公式仅适用于按照日历周历法或ISO周历法计算星期的情况。
总结起来,计算星期的公式可以分为按照日历周历法计算和按照ISO 周历法计算两种方式,根据具体的需求和地区的习惯来选择适合的公式。
给出年月日计算星期几
= 122,
这正是5月1日在2004年的累积天数。
假如,我们再变通一下,把1月和2月当成是上一年的“13月”和“14月”,不仅仍然符合这个公式,而且因为这样一来,闰日成了上一“年”(一共有14个月)的最后一天,成了d的一部分,于是平闰年的影响也去掉了,公式就简化成:
= 2002 + 500 - 20 + 5 + 36 + 1
= 2524;
2524 / 7 = 360……4.这和实际是一致的。
公式(5)已经是从年、月、日来算星期几的公式了,但它还不是最简练的,对于年份的处理还有改进的方法。我们先来用这个公式算出每个世纪第一年3月1日的星期,列表如下:
年份: 1(401,801,…,2001) 101(501,901,…,2101)
显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,
(Y-1)*365 = (Y-1) * (364+1)
= (Y-1) * (7*52+1)
= 52 * (Y-1) * 7 + (Y-1),
这个结果的第一项是一个7的倍数,除以7余数为0,因此(Y-1)*365除以7的余数其实就等于Y-1除以7的余数。这个关系可以表示为:
【转】给出年月日,计算星期几--算法及算法来历最常见的公式:
W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D
Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
知道公历日期计算星期:
黄远珦
随便给一个日期,就可以推算出是星期几。
计算方法如下:模拟数除以7的余数就是星期数(星期几) 模拟数= [世纪/4] - 2乘以世纪+ 年份+ [年份除以4] + [13 乘以(月份+1) / 5] + 当月天数- 1 可以用公示来表示; Q = [S/4] - 2S + N + [N/4] + [13 * (y+1) / 5] + t - 1 公式中的符号含义如下: Q:星期;(Q对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六)S:世纪(前两位数)N:年(后两位数)y:月(y大于等于3,小于等于14,即在本公式中,某年的1、2月要看作上一年的13、14月来计算,比如2018年1月1日要看作2017年的13月1日来计算)t:日[ ]代表取整,即只要整数部分。