林志颖儿子生肖什么?
这个答案下面怎么没有专业的呢,我来献丑了 首先我们要知道,中国古人将阴历月分为四个节气,每一个节气分为十五周,称为“朔望月”(以月球绕行地球一周为一个周期);而将阳历日分作四个时间单位,称为“太阳日”,以太阳在黄道上的位置变化一个周期为一循环。这样,农历和公历都是以恒星日为周期的,每365天或366天为一个循环。
由于朔望月和太阳日的长度每年变化,农历和公历的日期每年大约对应20个节气左右(公历每年约40个节气)。 基于上述原理,我们可以建立如下算法: 输入:出生公历日期 输出:年份、月份、日期、节气到该节气的天数以及该节气的起始时间点(该节点所在小时分段的起点时间)
1.得到该公历日期是公历某一年的第几天,求该年的第一天是公历几月几日并记录。
2.计算该年该月这一天距离上一年的元旦(公历1月1日)或者该月份的月初(农历一月初一)有多少公历日数。因为元旦或者月初的公历日期是确定的,所以可以求出这一年这一月的第一天是农历的几月初几。
3.计算当天所属二十四节气中的第一个节气到达的时间,以及该节气开始的时辰。因为农历的每一月的大小不一,所以每一年的冬至(节气)开始的时间和月份都是不一样的。
4.如果该节气开始的时辰落在当天所属时辰区间范围内,就返回该时间段内的第一个小时分割点开始计时。否则,继续下一步。
5.判断当天是否闰日(农历二月有廿九或三十日的情况),如果是则重复步骤1-4,重新获得该日期所属闰月的信息,然后再按1-4判断。否则,直接跳到最后一步。
6.将得到的日期信息按照年月日时分的顺序排列,组成一个Date对象并返回。
7.计算该日期与春节(公历1月21/22日)之间相差多少天,并将该日期与春节之间的天数除以365,得出余数。根据余数判断该生日是属于鼠年,还是牛年,或者是虎年等等。当然,也可以进一步求出更细小的年代,比如公元前1世纪、公元1世纪等等。
注意点:
1.以上算法没有考虑闰年、闰月的情形。如果需要考虑闰年、闰月的情形,就需要对闰月进行特殊的处理。
2.本算法没有考虑上下半月的问题。对于农历一月和十二月的情况需要进行特殊处理。