-->
当前位置:首页 > 题库 > 正文内容

你是不是很奇怪,一年为啥365天而不是400天?为啥8月份是31天,但是2月份却只有28天?为啥一个星期是7天而不是6天?古时候的人们也是使用和我们现在一样的历法吗?关于这些问题有很多有趣的猜测了。现在,我们将告诉你其中的一个故事以便帮助你解释这些问题。借助于故事里的信息,你可以使用计算机来解决一个有趣的问题。关于历法有很多理论,设置这个问题只是以简单的方式告诉你其中的一个理论。
纵观历史,人们通过观察地球、月亮和太阳间的相对位置来记录时间。地球自转一圈的时间就是一天。地球围绕太阳转一圈的时间记为一

Luz3年前 (2022-01-19)题库864
你是不是很奇怪,一年为啥365天而不是400天?为啥8月份是31天,但是2月份却只有28天?为啥一个星期是7天而不是6天?古时候的人们也是使用和我们现在一样的历法吗?关于这些问题有很多有趣的猜测了。现在,我们将告诉你其中的一个故事以便帮助你解释这些问题。借助于故事里的信息,你可以使用计算机来解决一个有趣的问题。关于历法有很多理论,设置这个问题只是以简单的方式告诉你其中的一个理论。
纵观历史,人们通过观察地球、月亮和太阳间的相对位置来记录时间。地球自转一圈的时间就是一天。地球围绕太阳转一圈的时间记为一年,实际上需要365.242190 天。为了实用,一个历法年需要一个整数天数。因此人们需要增加闰天,以保持历法和太阳同步。如果你保持一年365天,那么你需要在差不多每4年一个闰年中增加1天左右。然而,这种历法并不能和地球围绕太阳旋转完全保持一致,因为平均下来每年是365.25天,这个要比实际的要多一点点时间。
这取决于你如何准确测量地球绕太阳公转的周期,你需要创造不同的闰年公式。一些西方著名的历法系统已经被发明,除了更复杂的东方历法系统。为了节省程序员的努力,我们将不讨论东方历法系统,如的农历。我们将专注于西方主要的历法系统。最早可能是凯撒在公元前46年建立的儒略历。它不够准确,每128年将休息一天。下一个是天文儒略历,由约瑟夫•尤斯图斯凯利格在16世纪前后发明的。这两个历法都有个简单的公式用来确定哪一年是闰年。
下一个主要历法系统是在1582年发明的被称为公历,因为人们终于注意到了地球的轨道和日历同步。在这个系统中,闰年每100年被丢弃一次,除非正好是400年。通过做这个修改,在一个日历年度的平均天数为365.2425。注意,该系统还不够完善,每3289年还会多一天。还有其他更多的修改建议,如一个由天文学家约翰•赫歇尔,希腊东正教,并在美国海军SPAWAR组。为了简便起见,人们还是采用了公历制,虽然它可能不是完美的。
以下是公历的计算闰年公式。对于y年,y>1582且y≠1700,当且仅当是满足下面的条件是y就是闰年:
•y能被4整除,而且
•y不能被100整除除非它能被400整除
若0 < y < 1582,当且仅当满足下面的条件它才是闰年:
•y能被4整除
因此,4年是闰年,100年是闰年,1900年不是闰年,但是2000是闰年。闰年有366天,额外的那天就是二月29日。非闰年有365天。
在你的计算中,你可能还需要观察有关公历的以下事实。在西方世界里,许多日历系统,被同时用在不同的领域里。目前西方的历法系统,主要遵循了格利高里历法,英国在1752年9月3日通过了所谓的公历改革。由于众多原因,我们相信你不想阅读这个问题的描述。为了不重写历史,人们决定消除从1752年9月3日开始的11天。也就是说,在公历中,在1752年9月3日到1752年9月13日之间的11天是没有的。需要注意的是罗马在1582年开始采用公历。此外,由于历史原因,1700年被宣布为公历闰年。关于公历还有其他的变种,但是,我们将使用上述的定义。不同的有关公历制有其它的变化,但是,我们将使用如上所定义的一方。
阴历一个月被定义为连续的新的或满月之间的平均时间是29.531天。人们观察到在一年平均12.368满月。不幸的是,这不是整数个天。因此,如果我们一年有12个月,每月30天,我们每年需要新增几天。为了解决这个麻烦,一种替换的方法就是一个月的天数介于30和31之间。然而,这就会引入一个额外的一天。经过多次争论,公历最终给出在非闰年中每个月的天数分别是31,28,31,30,31,30,31,31,30,31,30,31,分别从1月到12月。闰年中多的那一天添加到2月份中。各个月份的名称分别为:January, February, March, April, May, June, July, August, September, October, November和December。这些名称也很有意思,有很多与它们相关的故事。例如,罗马元老院任命的7月为July,以表彰凯撒为改革他们的日历而做出的贡献。然而,我们也没有时间在这里谈论它们。
在古代,一个星期可能有不同的天数,例如从4到10天。在公历系统中,一个星期大致相当于月球的季相,即人们可以清楚地观察到其位置的时间。因此,人们可以很容易地测量一个星期。此外,由于一些其他原因,例如宗教,最终被定义为7天。这7天的名字分别为:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday 和 Saturday。也都有着有趣的故事。然而,我们也没有时间在这里谈论它们。
纵观历史,人们相信星星的相对位置可以决定自己的命运。这也是个真实的故事,一些人住在一个叫T的小岛上。在T岛,人们每周从周一工作至周五,周六、周日享受两天的假期,除此之外没有其他假期。有个古老的传说,有这样一个幸运月,如果在这个月的最后一个工作日恰好是星期五的话,那么这个月就被称为幸运的。举例来说,2006年9月份的最后一个工作日是9月29日,这天正好是星期五。因此,它是幸运的。2006年7月的最后一个工作日是2006年7月31日,这天是星期一,因此它不是幸运的。2006年8月的最后一个工作日是8月31日,这天是星期四。因此,它也不是幸运的。据说,如果一个人在幸运月里每天只吃蔬菜的话,他/她将拥有财富。
此外,根据另外的传说,如果一个月的第一个工作日恰好是星期一的话,那么这个月就被称为一个好月。举例来说,2006年7月的第一个工作日为7月3日,这是周一。因此,它是好月。 2006年10月的第一个工作日是10月2,这是周一。因此,它也是好月。 2006年8月的第一个工作日为2006年8月1日,这是周二。因此,它不是好月的。2006年9月的第一个工作日是9月1日,这是星期五。因此,它也不是好月。据说,如果一个人在好月的每天晚上10点前上床睡觉的话,他/她将是非常健康的。一个月可能同时为好月和幸运月。
给定一个时间段,你的任务就是给出在这个时间段内好月和幸运月的数量。

### 输入格式:

第一行是测试数据的组数w,1 ≤ w ≤ 10. 然后是w组测试数据依次罗列出来。每个测试数据包括1行,有4个数字构成:
Ys Ms Ye Me
两两之间空格隔开,Ys是一个整数, 0 < Ys < 10000,这是起始的年份,Ms也是个整数, 1 ≤ Ms ≤ 12,表示起始月份。Ye 是一个整数, 0 < Ye < 10000,表示结束的年份, Me 是整数,1 ≤ Me ≤ 12,表示结束的月份。
注意:Ms,Ys表示的月份不会在Me,Ye表示的月份之后。

### 输出格式:

对于每个测试数据,在一行输出在Ys年Ms月(包括Ms月)到Ye年Me月(包括Me月)之间的幸运月的数量和好月的数量,以空格隔开。

### 输入样例:

in
2
2006 9 2006 9
2006 7 2006 9


### 输出样例:

out
1 0
1 1







答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。