NSDate转换公农历、八字干支

2019-12-13  本文已影响0人  Geniune

先上GitHub链接:

https://github.com/Geniune/NSDateLunar

方法调用:

NSDate *date = [NSDate date];  //可以初始化自己需要的NSDate对象,不得早于1901年

NSLog(@"公历:%zd年%zd月%zd日%zd点", [date year], [date month], [date day], [date hour]);  //输出公历信息
NSLog(@"农历:%@年%@月%@%@时", [date yearStream], [date chinaMonth], [date chinaDay], [date chinaHour]);  //输出农历信息
NSLog(@"干支:%@ %@ %@ %@", [date yearStream], [date monthStream], [date dayStream], [date hourStream]);  //输出干支八字
NSLog(@"五行:%@ %@ %@ %@", [date yearElement], [date monthElement], [date dayElement], [date hourElement]);  //输出干支对应五行

转换原理:

一、钟表时

二、回归年/恒星年

地球围绕太阳运动被称为地球公转,公转的时间为一年,但是在地球公转的过程中存在两种明显周期,分别为“回归年”和“恒星年”


回归年图示.jpg

三、二十四节气

太阳从春分点(黄经0°)出发,此时太阳垂直照射赤道;之后每15°为一个节气,运行一周经过24个节气正好360°后回到春分点,为一回归年。
古人又将黄道划分为4季,古时约5日为一候,6候为一气,2气为一节,3节为一季,4季为一年。也就是说一回归年有:

四、闰年与闰月

一回归年较一恒星年略短些,尽管天文学家把历年的平均时长安排的尽可能与回归年相近,但是两者相差的时间每四年积累成一天,将这一天加在某一年的2月份里,这年就被称为“闰年”;
农历将一年定为354或355日,两者相差的时间平均每三年积累成一个月,将这一月加在某一年里,这个月就被称为“闰月”。

五、天干地支

1.干支

天干地支,简称为“干支”。源于中国古时对天象的观测,简化后的干支为:

2.干支纪时法

干支纪时法就是用天干地支组成的组合按照既定的标记时间来表示纪时的一种方法。

六、八字

指的是用干支来准确记录年、月、日、时的方式,由“年干+年支”、“月干+月支”、“日干+日支”、“时干+时支”共八个干支所组成,形成“年柱+月柱+日柱+时柱”的八字组合。

以上知识点主要来自于维基百科:

维基百科-回归年
维基百科-格林尼治标准时间
维基百科-恒星年
维基百科-节气
维基百科-干支
维基百科-八字
简书贴-高氏日柱公式

如果本文对你有所帮助,记得点个赞哈

上一篇 下一篇

猜你喜欢

热点阅读