当前位置:首页 > 生活 > 正文

今天是星期二,再过31天是星期几,今天是星期五再过31天是星期几

本文目录

  1. 今天是星期五再过31天是星期几
  2. 再过几天是星期几公式
  3. 今天是星期二,再过三天就是小明的生日,小明的生日是星期几
  4. 如何用计算未来某天是星期几
  5. 谁能告诉我公元元年的之一天是星期几

一、今天是星期五再过31天是星期几

星期一。

计算过程如下:

1 、每星期是7天;

2 、31÷7,商4 ,余3 。即31天是4个星期零3天;

3、星期5+3天=星期1;

4、所以 ,今天是星期五再过31天是星期1 。

扩展资料:

一 、除法的计算法则:

1、除数=被除数/商,被除数=商*除数;

2、被除数÷除数=商;

今天是星期二,再过31天是星期几,今天是星期五再过31天是星期几

(图片来源于 *** 侵删)

3 、被除数÷商=除数;

4、商×除数=被除数;

二、除法的基本性质:

一个数连续除以几个数,可以除以后几个数的积,也可以先除以第二个数 ,再除以之一个数,商不变。

a÷b÷c=a÷(bc)=a÷c÷b

三 、商不变性质:

被除数和除数同时乘或者除以相同的数(零除外),它们的商不变。

a÷b=(a×c)÷(b×c)=(a÷c)÷(b÷c)(c≠0)

二、再过几天是星期几公式

如果我们今天是星期M(1≤M≤7),想要知道再过N天是星期几 ,我们可以使用公式(M+N)mod7来计算 。这个公式的意思是将当前的星期数M加上天数N,然后对7取模。这样得到的结果可以直接对应到星期几。

具体来说,0表示星期天;1表示星期一;2表示星期二;3表示星期三;4表示星期四;5表示星期五;6表示星期六 。

举个例子 ,如果今天是星期四(M=4),再过7天(N=7,相当于过了一周)的话 ,我们就可以这样计算:(4+7)mod7=11mod7=4 ,结果还是星期四。

如果再过31天(N=31,相当于下个月的同一天),我们同样可以使用上述公式进行计算:(4+31)mod7=35mod7=0 ,结果是0,表示星期天。

再过365天(N=365,相当于明年的同一天) ,我们也可以使用同样的 *** :(4+365)mod7=369mod7=5,结果是5,表示星期五 。

通过这种方式 ,我们可以轻松地计算出任何天数后的星期几,这对于日常生活中的各种安排和计划都非常有帮助。

三、今天是星期二,再过三天就是小明的生日,小明的生日是星期几

星期六。由题意知:今天是星期二,再过三天才是小明的生日 。则 ,再过三天就是明天星期三 、后天星期四、大后天星期五。也就是三天后是星期五,而小明的生日是再过三天以后。所以小明生日那天的应该是星期五过完,也就是星期六 。

扩展资料:常见相似题

1、蜘蛛有8条腿 ,蜻蜓有6条腿和2对翅膀 ,蝉有6条腿和1对翅膀 。这三种小虫共18只,有118条腿和20对翅膀。每种小虫各几只?解:因为蜻蜓和蝉都有6条腿,所以从腿的数目来考虑 ,可以把小虫分成"8条腿"与"6条腿"两种。利用公式就可以算出8条腿的 。蜘蛛数=(118-6×18)÷(8-6)=5(只)。因此就知道6条腿的小虫共18-5=13(只)。也就是蜻蜓和蝉共有13只,它们共有20对翅膀 。再利用一次公式。蝉数=(13×2-20)÷(2-1)=6(只)。因此蜻蜓数是13-6=7(只) 。答:有5只蜘蛛,7只蜻蜓 ,6只蝉。

2 、某次数学考试考五道题,全班52人参加,共做对181道题 ,已知每人至少做对1道题,做对1道的有7人,5道全对的有6人 ,做对2道和3道的人数一样多,那么做对4道的人数有多少人?解:对2道,3道 ,4道题的人共有:52-7-6=39(人)。他们共做对:181-1×7-5×6=144(道) 。由于对2道和3道题的人数一样多 ,我们就可以把他们看作是对2.5道题的人((2+3)÷2=2.5).这样兔脚数=4,鸡脚数=2.5,总脚数=144,总头数=39。对4道题的有:(144-2.5×39)÷(4-2.5)=31(人)。答:做对4道题的有31人 。

参考资料来源:百度百科-鸡兔同笼(一种数学奥数题目)

四 、如何用计算未来某天是星期几

设今天是星期X(1≤X≤7) ,求再过Y天是星期几,答:星期(X+Y)/7的余数;

例如:今天星期一(X=1),

再过1天(Y=1 ,也就是明天)就是:(1+1)/7······2(星期二);

再过7天(Y=7,也就是过一星期)就是:(1+7)/7= 8/7······1(星期一);

再过31天(Y=31,也就是下个月的今天)就是:(1+31)/7= 32/7······4(星期四);

再过365天(Y=365 ,也就是明年的今天)就是:(1+356)/7= 357/7······0(星期天) 。

扩展资料

现在制定工作日、休息日的依据。

星期作为时间周期最早起源于巴比伦。现在世界通行的星期制是罗马皇帝君士坦丁大帝在公元321年3月7日正式确立的 。

在中国古代称七曜。七曜在中国夏商周时期,是指日、月 、及五大行星等七个主要星体,是当时天文星象的重要组织成份 ,但并没有表示时间周期之意。后来借用作七天为一周的时间单位,故称星期 。

星期在中国古称七曜。七曜在中国夏商周时期,是指日、月及五大行星等七个主要星体 ,是当时天文星象的重要组织成份。中国的七曜开始并未作为时间单位 。

五、谁能告诉我公元元年的之一天是星期几

并不是这么简单 ,现行的公历是格利戈里历法,这个历法的是1582年教皇格利戈里根据恺撒大帝引进的算法改进的。它采用的是闰年制也就是现行的制度,不过有一个需要注意的地方就是 ,这个历法并不是连续的,中间缺少了11天。1752年9月2日之后的那一天并不是1752年9月3日,而是1752年9月14日 。也就是说 ,从1752年9月3日到1752年9月13日的11天并不存在。抹掉这11天是由英国议会做出的决定。所以要计算某年每个月的天数的,除了要考虑是否是闰年以外,还要考虑1752年的9月 。

-------------------------

公元元年的之一天 ,也就是公元1年1月1日 。具体:公元1年1月1日是星期六。

---------------------

太阳历又称为阳历,是以地球绕太阳公转的运动周期为基础而制定的历法。太阳历的历年近似等于回归年,一年12个月 ,这个“月”,实际上与朔望月无关 。阳历的月份 、日期都与太阳在黄道上的位置较好地符合,根据阳历的日期 ,在一年中可以明显看出四季寒暖变化的情况;但在每个月份中 ,看不出月亮的朔、望、两弦。

如今世界通行的公历就是一种阳历,平年365天,闰年366天 ,每四年一闰,每满百年少闰一次,到第四百年再闰 ,即每四百年中有97个闰年。公历的历年平均长度与回归年只有26秒之差,要累积3300年才差一日 。

现行公历的产生 、变化和发展

目前通行世界的公历,是我们大家最熟悉的一种阳历。这部历法浸透了人类几千年间所创造的文明 ,是古罗马人向埃及人学得,并随着罗马帝国的扩张和基督教的兴起而传播于世界各地。

公历最早的源头,可以追溯到古埃及的太阳历 。尼罗河是埃及的命根子 ,正是由于计算尼罗河泛滥周期的需要,产生了古埃及的天文学和太阳历。七千年前,他们观察到 ,天狼星之一次和太阳同时升起的那一天之后 ,再过五、六十天,尼罗河就开始泛滥,于是他们就以这一天作为一年的开始 ,推算起来,这一天是7月19日。最初一年定为360天,后来改为365天 。这就是世界上之一个太阳历。后来他们又根据尼罗河泛滥和农业生产的情况 ,把一年分为三季,叫做洪水季、冬季和夏季。每季4个月,每月30天 ,每月里10天一大周,五天一小周 。全年12个月,另加5天在年尾 ,为年终祭祀日 。

这种以365天为一年的历年,是由于观测天狼星定出来的,叫天狼星年。它和回归年相差约0.25天 ,因而在日历上每年的开始时间越来越早 ,经过1461个历年,各个日期再次与原来的季节吻合,以后又逐渐脱离。看起来 ,天狼星年好象在回归年周期左右徘徊,因而又叫它为徘徊年 、游移年,1461年的循环周期被称为天狼周期 。

后来 ,埃及人通过天文观测,发现年的真正周期是365.25日,但僧侣们为了使埃及的节日能与祭神会同时举行 ,以维护宗教的“神圣 ”地位,宁愿保持游移年。后来出土了一块石碑,上面有用埃及文和希腊文所写的碑文 ,记载了欧吉德皇帝在公元前238年发布的一道命令:每经过四年,在第四年的年末五天祭祀日之后、下一年元旦之前,再加一天 ,并在这天举行欧吉德皇帝的节日庆祝会 ,以便让大家记住。欧吉德皇帝校正了以前历法的缺陷,这增加一天的年叫定年,其它年叫不定年 。

古罗马人使用的历法经历了从太阴历到阴阳历、阳历的发展过程。罗马古时是意大利的一个小村 ,罗马人先是统一了意大利,而后又成为地跨欧 、亚 、非三洲的大帝国。最早,古罗马历全年10个月 ,有的历月30天,有的历月29天(这十分类似太阴历),还有70几天是年末休息日 。罗马城之一个国王罗慕洛时期 ,各月有了名称,还排了次序。全年10个月,有的月30天 ,有的月31天,共304天,另外60几天是年末休息日。以罗马城建立的那一年 ,即公元前753年作为元年 ,这就是罗马纪元 。某些欧洲历史学家直到17世纪末还使用这个纪年来记载历史事件。

第二个国王努马,参照希腊历法进行了改革,增加了第十一月和第十二月 ,同时调整各月的天数,改为1、3、5 、8四个月每月31天,2、4、6 、7、9、10 、11七个月每月29天 , 12月最短,只有28天。根据那时罗马的习惯,双数不吉祥 ,于是就在这个月里处决一年中所有的死刑犯 。这样,历年为355天,比回归年少10多天 。为了纠正日期与季节逐年脱离的偏差 ,就在每四年中增加两个补充月,之一个补充月22天,加在第二年里 ,另一个23天加在第四年里 ,所增加的天数放在第十二月的24日与25日之间。这实际上就是阴阳历了,历年平均长度为366.25天,同时用增加或减少补充月的办法来补救历法与天时不和的缺点。但这样却更增加了混乱:月份随意流转 。比如 ,掌管历法的大祭司长在自己的朋友执政的年份,就硬 *** 一个月,而当是仇人执政 ,就减少补充月,来缩短其任期。民间契约的执行也受到影响,祭祀节与斋戒日都在逐渐移动 ,本该夏天的收获节竟跑到了冬天举行。

当儒略·凯撒第三次任执政官时,指定以埃及天文学家索西琴尼为首的一批天文学家制定新历,这就是儒略历 。

儒略历的主要内容是:每隔三年设一闰年 ,平年365天,闰年366天,历年平均长度为365.25日。以原先的第十一月1日为一年的开始 ,这样 ,罗马执政官上任时就恰值元旦。儒略历每年分12个月,第1、3、5 、7、9、11月是大月,大月每月31天 。第4 、6 、8、10、12月为小月 ,小月每月30天。第二月(即原先的第十二月)在平年是29天,闰年30天,虽然月序不同于改历前 ,可是仍然保留着原来的特点,是一年中最短的月份。

儒略历从罗马纪元709年,即公元前45年1月1日开始实行 。这一年 ,为了弥补罗马历与太阳年的年差,除了355天的历年和一个23天的附加月外,又 *** 两个月 ,其中一个月为33天,另一个月为34天。这样,这一年就有355+23+33+34=445天。这就是历史上所称的“乱年 ” 。

西方历法从儒略历实施开始 ,终于走上正轨 。滑稽的是 ,那些颁发历书的祭司们,有本事从乌鸦的争斗预卜吉凶,却把改历命令中的“每隔三年设一闰年”误解为“每三年设一闰年”。这个错误直到公元前9年才由奥古斯都下令改正过来。

“奥古斯都 ”是神圣 、庄严、崇高的意思 。在古罗马 ,这个尊号过去只是在举行宗教仪式上才授予的。在公元前27年,元老院把它授给了屋大维。他是儒略·凯撒姐姐的儿子,是凯撒遗嘱的之一继承人 。

想当年 ,伟大的凯撒大帝南征北战,东讨西伐,雄才大略 ,不可一世,后来更成为事实上的独裁者。树大招风,遭到许多人嫉妒。公元前44年 ,当凯撒意图公开称帝时,却在元老院的议事厅遭到刺杀 。此时屋大维还不满20岁,但他却颇具智力和手腕 ,逐渐积蓄力量 ,到公元前30年,击败所有对手,成了罗马“之一公民”。屋大维实际上就是唯一具有无限权力的统治者 ,他结束了罗马共和时期。因此,历史上把从公元前27年开始的罗马,称为罗马帝国 。

当奥古斯都准备改正闰年错误时 ,已经多闰了三次,于是他下令从公元前8年到公元4年停止闰年,即公元前5年、公元前1年和公元4年仍是平年 ,以后又恢复为每四年一闰了。为了纪念他的这一功绩,罗马元老院通过决议,把儒略历的第八月改称为“Augustus” ,即奥古斯都月,因为他在这个月里曾取得过巨大的军事胜利。但这个月是小月,未免有点逊色 ,何况罗马人以单数为吉 ,而30天却是个双数,于是就从2月份拿出一天,加到奥古斯都月里 ,8月就31天了,可怜的2月在平年只有28天,碰上四年一次的闰年也不过29天 。7 、8、9月连续三个月都是大月 ,看起来很不顺眼,使用也不方便,就把9月改为30天 ,10月为31天,11月为30天,12月为31天 。这样 ,大小月相间的规律破坏了,一直到两千年后的今天还受到影响。

奥古斯都修改过的历法格式与现行公历一模一样了,但它的纪元 ,即计算年代的起算点还不是公元元年 ,它的闰年 *** 与现行公历还不完全一致。这两点差别与基督教的起源和发展有密切的关系 。

基督教产生于公元一世纪的巴勒斯坦,“基督 ”一词是古希腊语的译音,意为“救世主”。传说基督教的创始人是耶稣 ,他作为救世主,许诺穷人死后升入天堂,而富人要进入天堂比骆驼穿过针眼还难。由于拨动了社会下层人民的心弦 ,基督教逐渐传播开来,引起罗马统治者不安,在提庇留皇帝时代 ,罗马派驻犹太的总督,将耶稣钉死在十字架上 。但是第三天,耶稣从坟墓中复活过来 ,并升了天,他将来还要对所有的死人、活人施行末日审判。后来,基督教徒把这些传说和耶稣言行记录下来 ,编写了《新约圣经》。

早期的基督教 ,因为打破了罗马帝国的神权统治,而多次遭到镇压 。后来,罗马帝国日渐衰落 ,奴隶制日趋瓦解,原来的社会上层分子在彷徨中纷纷加入基督教,并逐步控制了它 ,努力寻求统治者对教会的支持。统治者对教会转而采取怀柔政策,到四世纪末,罗马帝国终于宣布基督教为其国教。

公历的纪元 ,就是从“耶稣降生”的那年算起的 。这与基督教的兴盛密切相关。

此后,儒略历被认为是准确无误的历法,于是人们把3月21日固定为春分日 ,却带来了未曾料想到的麻烦。随着时间的推移,人们发觉,真正的春分不再与当时的日历一致 ,这个昼夜相等的日期越来越早 ,到16世纪末已提前到3月11日了 。春分逐渐提前,是由于儒略历并非最精确的历法,它的历年平均长度等于365.25日 ,还是比回归年长了11分14秒,这个差数虽然不大,但累积下去 ,128年就差一天,400年就差三天多 。

为了不违背宗教会议的规定,满足教会对历法的要求 ,罗马教皇格里高利十三世设立了改革历法的专门委员会,比较了各种方案后,决定采用意大利医生利里奥的方案 ,在400年中去掉儒略历多出的三个闰年。

1582年3月1日,格里高利颁发了改历命令,内容是:

一 、1582年10月4日后的一天是10月15日 ,而不是10月5日 ,但星期序号仍然连续计算,10月4日是星期四,第二天10月15日是星期五。这样 ,就把从公元325年以来积累的老账一笔勾销了 。

二、为避免以后再发生春分飘离的现象,改闰年 *** 为:凡公元年数能被4整除的是闰年,但当公元年数后边是带两个“0 ”的“世纪年”时 ,必须能被400整除的年才是闰年。

格里高利历的历年平均长度为365日5时49分12秒,比回归年长26秒。虽然照此计算,过3000年左右仍存在1天的误差 ,但这样的精确度已经相当了不起了 。

由于格里高利历的内容比较简洁,便于记忆,而且精度较高 ,与天时符合较好,因此它逐步为各国 *** 所采用。我国是在辛亥革命后根据临时 *** 通电,从1912年1月1日正式使用格里高利历的。

西方历法的之一次改革是罗马朱利乌斯·凯撒大帝引进的 。他采用的四年一闰的闰年方式。由于一个太阳年不刚好是365.25天 ,而是 365.242199…天。到16世纪 ,每年11分14秒的误差已经累积成10天,也就是历法上多了10天 。于是教皇格利戈里八世进行了一次校正。他在1582年2月24日以教皇训令颁布,将1582年10月5日至14日抹掉 ,并且对原来的闰年 *** 进行了校正。经过校正的历法叫格利戈里历法,也就是我们现在用的公历 。1752年,英国人决定采用格利戈里历法 ,不过从1582年到那时,历法又多出了1天,所以英国议会在1752年作出决定 ,抹掉11天——1752年9月3日至13日 。”

----------------

如何求某一天是星期几?

请注意这样一个事实,即从公元元年一月一日开始到现在,每一天都是连续的 ,而每个星期有7天,也是连续的,也就是说日期和星期是一对一的 ,没有断档现象。我的基本思想是计算出当前天是从公元元年一月一日开始的第几天 ,再利用星期的周期性来计算公元任何一天是星期几。

假设当前年份为y,并忽略闰年,则从公元元年一月一日到y-1年共有365*(y-1)天 ,加上闰年多出来的天数,即加上1*((y-1)/4-(y-1)/100+(y-1)/400),"/"为整除 ,得:365*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400) 。我们再补上从当前1月1日开始到当前天的天数e,即为所求。即:365*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e。它的值即为当前天是从公元元年一月一日开始算起的第几天 。补上一个x(x是与公元元年一月一日是星期几有关的一个0~6的整数),并将这个表达式赋给变量t ,即:t=x+365*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e再用t除以7,余几即为星期几(余0为星期日)。

下面讨论x的求法,如果知道公元元年一月一日是星期几 ,就可以直接得到x的值,但现在公式还没有求出来,不知道公元元年一月一日是星期几。不过没关系 ,毕竟知道最近的日期是星期几 。不妨看一下2001年1月1日是星期几 ,结果是星期一,代入公式得t=x+730516,用730516除以7 ,得104355,余数是1,则为了保证2001年1月1日是星期一 ,取x为0,所以公元元年一月一日也是星期一。至此,得到了完整的公式:

t=365*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e

再将它做一下改进 ,我们将公式变形为:

t=(52*7+1)*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e

利用星期的周期性,将52*7+1从公式中删除,得:

t=(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+e

以下是这种算法的C语言程序:

#include<stdio.h>

char*name[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

void main(void)

{

int d,m,y,e,t,f;

printf("请输入日:");

fflush(stdout);

scanf("%d",&d);

printf("请输入月:");

fflush(stdout);

scanf("%d",&m);

printf("请输入年:");

fflush(stdout);

scanf("%d",&y);

switch(m)

{

case 1:e=d;break;

case 2:e=31+d;break;

case 3:e=59+d;break;

case 4:e=90+d;break;

case 5:e=120+d;break;

case 6:e=151+d;break;

case 7:e=181+d;break;

case 8:e=212+d;break;

case 9:e=243+d;break;

case 10:e=273+d;break;

case 11:e=304+d;break;

case 12:e=334+d;break;

default:return;

}

if(y%4==0&&y%100!=0||y%400==0)

if(m>2)

++e;

--y;

t=y+y/4-y/100+y/400+e;

f=t%7;

printf("这一天是%s\n",name[f]);

}

再谈星期的计算

“让我们看看1752年9月14号这个星期四吧 ,我们的公式最远只能推算到这里了。 ”

——Kim S. Larsen

“从公元元年1月1日开始到现在,每一天都是连续的 。”

——于鹏

“西方历法的之一次改革是罗马朱利乌斯·凯撒大帝引进的。他采用的四年一闰的闰年方式。由于一个太阳年不刚好是365.25天,而是 365.242199…天 。到16世纪 ,每年11分14秒的误差已经累积成10天 ,也就是历法上多了10天 。于是教皇格利戈里八世进行了一次校正。他在1582年2月24日以教皇训令颁布,将1582年10月5日至14日抹掉,并且对原来的闰年 *** 进行了校正。经过校正的历法叫格利戈里历法 ,也就是我们现在用的公历 。1752年,英国人决定采用格利戈里历法,不过从1582年到那时 ,历法又多出了1天,所以英国议会在1752年作出决定,抹掉11天——1752年9月3日至13日。”

日期的限制是Kim S. Larsen算法的问题吗?不。

公元元年1月一日开始到现在 ,每一天都是连续的吗?不 。

一个简单的 *** 就可以证明上述事实——用Linux的cal命令。启动你的Linux在#提示符下输入

cal 9 1752

你会看到:

September 1752

Su Mo Tu We Th Fr Sa

1 2 14 15 16

17 18 19 20 21 22 23

24 25 26 27 28 29 30

有趣吧一个只有19天的九月。

让我们来看看这两个算法,Kim S. Larsen博士的算法和于鹏同学的算法在本质上其实是相同的 。只不过在实现的细节上略有不同。如果让两个算法去计算同一天(无论在1752年9月14日之前还是之后)是星期几,二者的答案肯定是相同的。让我们来分析一下吧 。

首先 ,他们把日期对星期的决定作用都分为年、月 、日三个决定因素。对于年的因素,从两者的计算公式就能看出是相同的;对于日的因素,两者都是直接计入 ,故也是相同的;而对于月的因素 ,Kim S. Larsen博士构造了一个公式,(一个非常巧妙的公式,)通过以月份为自变量算出的函数值作为对星期的影响量。而于鹏同学采用了查表的 *** ,即先构造好一个以月份为索引的表对于相应的月份,通过查表得出其对星期的影响量 。(以switch语句实现)不妨作如下演算:(为了一致起见,采用一、二月作为上年的十三、十四月 。这是一个非常聪明的 *** 。)用于鹏同学的 *** 建表 ,并对7取模(表一)。再建立Kim S. Larsen函数的函数值表(表二) 。很显然二者是相同的。

三月 0 0三月 0

四月 31 3四月 3

五月 61 5五月 5

六月 92 1六月 1

七月 122 3七月 3

八月 153 6八月 6

九月 184 2九月 2

十月 214 4十月 4

十一月 245 0十一月 0

十二月 275 2十二月 2

十三月 306 5十三月 5

十四月 337 1十四月 1

表一表二

其次,在处理闰年2月29日的问题上,两者的做法略有不同 ,但效果还是相同的。Kim S. Larsen博士采用的 *** 相当高明,他把二月排在一年的最后,管他闰不闰 ,反正是最后一天 。而于鹏同学加了一个if分支,直观有效。

大师不愧为大师,设计的算法简洁 、优美;而于鹏同学的算法 ,简单易懂 ,并且效率并不差。

好了,该解决这个“历史遗留问题 ”了 。其实,并没有什么数学公式能算出指定日期是星期几 ,我们可以试着拼凑一个,不过何必呢?加个if分枝不就解决问题了吗?(Kim S. Larsen算法+于鹏思想)对Kim S. Larsen博士的程序作一些必要的添加,可得到突破1752年9月14日日期限制的C语言程序。

/*C++Builder5下编译通过*/

/*假设输入的是正确的日期*/

#include<stdio.h>

char*name[]={"Monday",

"Tuesday",

"Wednesday",

"Thursday",

"Friday",

"Saturday",

"Sunday"

};

void main(){

int D,M,Y,A;

printf("Day:"); fflush(stdout);

scanf("%d",&D);

printf("Month:"); fflush(stdout);

scanf("%d",&M);

printf("Year:"); fflush(stdout);

scanf("%d",&Y);

if((M== 1)||(M== 2)){/*一月 、二月当作前一年的十三、十四月*/

M+= 12;

Y--;

}

if((Y< 1752)||((Y== 1752)&&(M< 9))

||((Y== 1752)&&(M== 9)&&(D< 3)))/*判断是否在1752年9月3日前*/

A=(D+ 2*M+ 3*(M+1)/5+ Y+ Y/4+5)% 7;/*1752年9月3日前的公式*/

else A=(D+ 2*M+ 3*(M+1)/5+ Y+ Y/4- Y/100+ Y/400)% 7;/*1752年9月3日后的公式*/

printf("It's a%s.\n",name[A]);

}

另外:

1.公元1年1月1日是星期六。

2.如果有朋友对这个问题感兴趣 ,或是有什么好的算法,欢迎和我联系 。我的联系 *** 是:andrew80@163.net。

3.据说现行公历2800年左右还会有一天的误差,那时程序又要修正了。:)

高斯--泽勒公式:

A=(y+[y/4]-[y/100]+[y/400]+x) mod 7

星期几:A

(A=0为星期天!)

公元年: y

天数:x(由当年月份和日期定 ,即距离当年初的天数 。例:2001/3/1 x=31+28+1)

最新文章