本文主要是介绍历法、节日、节气,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一,阳历、阴历、公历、农历
1,阳历、阴历
2,公历,农历
二,双历合并
1,组成要素
2,一年
3,一月
4,一日
三,闰法则
1,闰秒
2,闰分
3,闰时
4,闰日、闰日年
5,闰月、闰月年
6,闰法则总结
四,年月日时分秒总结
1,日和公历年
2,秒
3,分、时
4,农历月
5,公历月
6,农历年
五,节假日
1,元旦、春节
2,清明、端午、中秋
3,劳动节、国庆节
六,节气
七,OJ实战
OpenJ_Bailian 2733 判断闰年
一,阳历、阴历、公历、农历
1,阳历、阴历
阳历主要参考地球和太阳之间的关系,阴历主要参考地球和月亮之间的关系。
2,公历,农历
很多人以为公历和阳历是一个意思,农历和阴历是一个意思。
其实,阳历阴历都是泛指,公历农历都是特指。
公历是一种阳历,世界上还有其他的公历。公历的作用是,让全世界对任意一天都有统一的描述方法,所以没啥技术含量。
农历是一种阴阳历,因为农历是用来指导农作的,而太阳和月亮都对农作物有很大的影响,所以有很高的技术含量,既是阳历也是阴历。
二,双历合并
中国古代发明并使用农历,这是非常强大的一个历法,对于农作指导有很强的意义,这是我们的文化瑰宝(不光是人文,还有很高的科技含量)。
但是又要和世界沟通,所以从20世纪开始引入公历,我们同时使用公历和农历。
那么,该如何合并呢?
1,组成要素
公历和农历都有3个基本尺度,年,月,日。
一年就是从最冷的时候到最冷的时候,一月是月亮最亮的时候到下一次最亮的时候,一日是太阳最亮的时候到下一次最亮的时候。
这个说法虽然不严谨,但却是客观的,也是幼儿园小朋友可以理解的一个简单定义。
所以,无论是很强的农历,还是很简单的公历,组成要素是基本一致的。
实际上:
一年是地球绕太阳一周,公历完全符合,农历的一年稍有区别,
一月是月亮绕地球一周,农历完全符合,公历的一月稍有区别,
一天是地球自转一周,公历和农历都完全符合。
2,一年
引入公历的同时,我们采用公元纪年,公元元年的含义是***,懂的都懂,和农历、和我国可以说没有半毛钱关系。
但是既然公历一年和农历一年是差不多的,所以纪年法也统一了,都用公元纪年。
同时为了方便,公历的2023年1月1日,和农历的1月1日不能相隔太多,而这就需要下文的“闰月法则”。
3,一月
因为1年大约是12个月,1年大约是365天,这2个数值关系也是客观的,所以公历可以简单粗暴的规定1年就等于12个月。
理论上,365天应该分成5个31天和7个30天,而且可以规定1-5月是31天,6-12月是30天,为什么实际上搞这么复杂呢?
这和盖维斯·屋大维·奥古斯都有关,这里就不发散了。
因为实际上1年比12个月要多几天,所以一般公历的一个月都比农历的一个月要长。
而为了保持公历年和农历年的相对同步,农历一年要么是12个月,要么是13个月,参考下文的“闰月法则”。
4,一日
铯-133原子基态的两个超精细结构能级之间跃迁相对应辐射周期的9192631770倍所持续的时间定义为一秒。1分钟等于60秒,1小时等于60分钟。
辐射周期的时间可以理解为绝对客观,是个不变的定值,和太阳、地球、月亮都无关,而用9192631770这个数值是为了保证1日大约等于86400秒,即24小时。
1日是地球自转一周,也是一个客观的时间。
实际上1日和86400秒是有偏差的,参考下文的“闰秒法则”
三,闰法则
1,闰秒
实际上1日比86400秒略大一点,如果放任不管,“日积日累”之后,总误差会很大。
所以每隔一段时间,误差接近1秒,就需要闰秒。
最近一次闰秒在北京时间2017年1月1日7时59分59秒和8时0分0秒之间,在原本相邻的2秒之间插入了一个闰秒。
2,闰分
因为经常闰秒对人类生活造成了麻烦,科学家和政府讨论决定,废除闰秒,改成闰分。
把闰秒的周期拉长60倍,把容忍最大误差改成1分钟,在误差接近1分钟时,实行闰分。
具体规则大概形如:在7时59分和8时0分之间,在原本相邻的2分之间,插入一个闰分。
改成闰分的好处就是,闰的频率下降了60倍。
3,闰时
也有人提议不采用闰分,直接采用闰时,这样,闰的频率将再度下降24倍。
目前应该还没有采用,所以闰秒、闰分、闰时是一个三选一的关系,不会同时存在于一套规则中。
4,闰日、闰日年
1年约为365.2422日,而公历采用1年365日,所以存在误差。
大约每4年,误差累积就会达到1日,所以大约每 4年就有1个闰日年,这一年实行闰日,即2月有29天,非闰日年有28天。
闰日年简称闰年,但是其中的闰规则指的是闰日。
详细规则:
能被4整除的是闰年,但能被100整除的不是闰年,但能被400整除的是闰年, 但能被3200整除的不是闰年,所以每3200年有800-32+8-1=775个闰年。
而0.2422*3200=775.04
5,闰月、闰月年
为了保持公历年和农历年的相对同步,农历一年要么是12个月,要么是13个月。
在农历十九年中,有十二个平年,为一平年十二个月;有七个闰月年,每一闰月年十三个月。
也就是说,一公历年/一农历月 大约是235/19
6,闰法则总结
闰法则的作用是调整不同时间单位之间的比例不是整数的问题,理论上每个闰法则都是正闰和负闰,但根据目前人类采用的数值,只需要正闰法则。
四,年月日时分秒总结
现在,我们可以把这个世界上的每一秒,都盘点清楚了。让我们从头捋一遍!
1,日和公历年
1日是地球自转一周的平均时间,1公历年是地球公转一周的平均时间,这2个时间是客观的固定值。
某种程度上,可以说这2个是仅有的有实际客观意义的时间单位。
解决日和公历年之间的非整数倍问题,需要闰日法则。
2,秒
1秒是铯-133原子基态的两个超精细结构能级之间跃迁相对应辐射周期的9192631770倍,
其中辐射周期的时间客观的固定值,而用9192631770这个数值是为了保证1日大约等于86400秒。
3,分、时
1分等于60秒,1小时等于60分,这是为了方便凭空创造的单位,没有误差。
因为1日大约等于86400秒,所以1日大约等于24小时。
秒、分、时是三位一体的,日和秒分时之间的非整数倍问题,需要闰法则,闰秒闰分闰时三选一。
4,农历月
农历1月是月亮公转一周的平均时间。
因为每个农历月的天数并不固定,所以不需要解决非整数倍问题。
5,公历月
公历月仅仅只是把每个公历年分成12份而已。
6,农历年
因为每个农历年的天数并不固定,所以不需要解决非整数倍问题。
而每个农历年都是由12个或13个农历月组成,需要闰月法则。
至此,年月日时分秒就全部清清楚楚了。
五,节假日
每年有7个节假日,一共11天假。
1,元旦、春节
本来只有1个节日的,自从同时引入公历之后,把传统节日元旦一分为二,一个是公历1月1日元旦,一个是农历1月1日春节。
元旦1天假,春节3天假(春节和后面2天)。
2,清明、端午、中秋
这3个是传统节日,分别是清明节气当日、农历端午当日、农历中秋当日。
3个都是1天假。
3,劳动节、国庆节
这2个公历节日,不是传统节日,分别是5月1日、10月1日。
劳动节1天假,国庆节3天假(国庆和后面2天)。
六,节气
现行的“二十四节气”来自于三百多年前(1645年起沿用至今)订立的根据太阳在回归黄道上的位置来确定节气的方法,即在一个为360度圆周的“黄道”(一年当中太阳在天球上的视路径)上,划分为24等份,每15°为1等份。
七,OJ实战
OpenJ_Bailian 2733 判断闰年
题目:
Description
判断某年是否是闰年。
Input
输入只有一行,包含一个整数a(0 < a < 3000)
Output
一行,如果公元a年是闰年输出Y,否则输出N
Sample Input
2006
Sample Output
N
Hint
公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年, 能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。
代码:
#include<iostream>
using namespace std;char f(int n)
{if (n % 4)return 'N';if (n % 100)return 'Y';if (n % 400)return 'N';//if (n % 3200)return 'Y';//return 'N';
}int main()
{int a;cin >> a;cout << f(a) << endl;return 0;
}
这篇关于历法、节日、节气的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!