#P1801. Problem A. 辞旧迎新
Problem A. 辞旧迎新
Problem A. 辞旧迎新
时间限制:1000ms
空间限制:256MB
题目背景
日月运行规律的探寻
太阳东升西落、月有阴晴圆缺、寒来暑往有春秋四季。这些大自然的规律,自文明伊始就被人们所熟知。随着社会的发展,人类有了记录时间和日期的需要。如同度量衡需要不同尺度的单位一样,人们希望日期也有不同尺度的单位。自然地,日出日落成了记录时间的一个周期,被称为日(或天)。月缺月圆也成了记录时间的一个周期,被称为月。季节交替,借由日影长短的周期变化则形成了年。并且人们发现,日、月、年这三个单位之间似乎有某种倍数关系,却又不是完全准确。大约30日是一个月,大约12月是一年。为了修正这里的“大约”,古人做了两件事:
-
月分大小。小月29天,大月30天。由于月相变化周期大致为29.53天 。因此,用29天和30天混合编排就可以逼近真实的月相周期。平均下来,一个月有29.53天。这种编排可以看成是闰日。
-
闰月。古人以日影长短来确定夏至、冬至,进而划分节气。相邻两年的冬至之间有365.2422天。比12月的354.36天略长。人们常说19年7闰,就是在19年中安排7个闰月,用 个月的长度,去逼近19年的长度。
这样一来,基于年、月、日的历法系统的框架就基本确定了。不仅每个单位都合乎天相,并且相互嵌套,合而为一。
确定节气
季节是跟太阳直射的纬度相关的。当太阳直射北回归线时,北半球就是夏至。在没有科学的天文知识的古代,人们通过正午时日影的长度来测算季节。通过日影最长点确定冬至日,两个冬至日之间为一年。人们将一年分成24等份,每个等分点作为一个节气。这样,每个节气就与太阳运行的位置联系起来。每个节气也就有了固定的季节特征。
由于地球公转速度的不均匀,通过时间上的等分确定节气并不科学。到了清代,这种时间等分被太阳实际运行的角度等分所取代。
确定闰日和闰月
相对于公历的绝对规律性而言,农历的闰日和闰月是基于天文观测的。也就是说,农历的日期编排从数学上来说是“没有周期性”的。所有的历书都必须根据天文观测和精确的天文学模型,来确定未来某时刻的日月和地球的位置,进而划分年月。
先来看闰日,即如何确定大小月。这个相对简单一些,因为一个月里的日数就是从1开始往下排的,不需要考虑闰哪一天的问题。所以,只需根据当月的起讫时间,确定该月的总天数即可。例如,在春秋战国以前,进行天文观测时,一般以新月初现的这一天作为一个月的起始。通过计算相邻两个新月之日间的跨度,即可得知这个月是29天还是30天。
至于闰月的安排,大体的思想跟确定大小月是一样大的,即根据当年的起讫时间,确定该年的总月数。如果总月数是12个月,则不需要置闰月;如果总共有13个月,则需要在该年安排一个闰月。在春秋战国时代,闰月被统一安置在年尾,即有闰月的年份,都是闰十二月。这样的置闰法会带来一个问题——月份与季节之间会有较大的偏差。会出现这一年一月开春,下一年二月开春的局面。为了缓解闰月对季节直观感受之间的矛盾,西汉初年,制定历法的人想到了沿用至今的中气置闰法。这种方法将冬至所在的月固定为十一月,再将二十四节气中次序为偶数的节气(称为中气)排列在时间线上。由于二十四节气的间隔长度略大于一个月的长度,根据容斥原理,当一年有13个月时,必然至少有一个月没有中气。意味着从这个月开始,节气比月份走得快了。于是,我们就在第一个没有中气的月份之后,添加一个闰月,好让节气放慢一点节奏,等一等落后的月份。这样,理想情况下可以让每个月各有一个中气,从而使节气和月份有了对应。
题目描述
蛇年马上就要到了,“小孩小孩你别馋,过了腊八就是年……”这首耳熟能详的童谣里,除夕夜总与“年三十”绑定。可是小季发现今年没有“年三十”了,他也找不到除夕在哪一天了,你能帮助他找到这个日子吗?
输入描述
本题没有输入。
输出描述
输出一个八位数字,前四位代表年份,中间两位代表月份,最后两位代表日份,表示今年蛇年除夕的日期。
样例
输入
输出
20240209
样例1解释
输出并不是本题答案,仅作为参考。
相关
在下列比赛中: