java 如何获得传统年月日时辰。

osc_47904062 发布于 06/21 11:02
阅读 687
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

java如何获得年月日时辰节气。

比如10点 【巳时】隅中,又名日禺等:临近中午的时候称为隅中。(北京时间09 时至11时)。

当前这一天属于哪一个节气内。

加载中
0
z
zcGoo

hutool有获取农历的api,但是时辰的好像没有

农历日期-ChineseDate (hutool.cn)

0
z
zcGoo

引用来自“zcGoo”的评论

hutool有获取农历的api,但是时辰的好像没有

农历日期-ChineseDate (hutool.cn)

可以考虑提个PR给hutool,以后面试可以吹牛皮,参加过github热门中文开源项目Hutool的开发。

ddatsh
ddatsh
https://www.cnblogs.com/xkzhangsanx/p/13417518.html 弄到hutool里。。。
osc_47904062
osc_47904062
:joy::astonished::kissing_heart:
0
ArchitectureMaster
ArchitectureMaster

首先题主要了解中国的历法:

24节气是阳历,即和今天的公历是相通的。而12时辰则是阴阳历,时辰和公历的时间只是由24变成了12,再加上了12地支的时辰描述。但这些除了月是太阳历其它与公历基本一致。所以你要算是在什么节气需要先选定一个公历日期再由这个日期得到24节气范围,然后再把时间转为时辰即可,而这个是可以直接转换的

这个简单,只需要自己写一个转换就可以了。

先找起点,如公元1902年1月1日

1. 公元0年计为0秒。

2.再找到公历这一天是农历的哪一天。

3.然后把这两个天的差值找出来,即算出这一天为上一年的冬月22到过春节还差多少天,即8+29=37天。

4.可得出公历1902年1月1日是农历1901年11月22日,相差37天(注意这里差的天数不能按公历的大月31小月30而要按阴历来计算29或30天。

5.接下来就好办了,因为公历和农历都是太阳历,即他们一年都是365天多一点。

6公历的1902/1/1代表0      公历的1902/1/1代表1

 农历的1901/11/22代表0,农历的1901/11/23代表1

这样我们如果把从公历的所有日期1902到现在的所有天都放到一个数组中,即[1902/1/1,1902/1/2..]

再把农历的所有对应的天数放到另一个数组中,[1901/11/22,1901/11/23]。

查询时 如果 key是1902/1/1公历日期,使用数组的indexOf方法可得到当前输入的日期的索引位置如你输入1902/1/2索引得到是1,再把1带到农历数组就可以找到对应的农历日期为1901/11/23,后面的依次类推。因为农历数组用 arr[1]去取得到的是1901/11/23。

 

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部