Almanac 历
本项目学习寿星天文历和日梭万年历,包括但不限皇历、生辰八字、日出月落、农历、黄历、干支、节气、月相、经纬度、节假日、伊斯兰历、儒略历、天文历、回历、西历等日历数据和天文数据的计算,支持年、月、日的计算范围。
本项目部分源码源于开源,所以也完全开源,无授权许可,禁止商用。
如何使用
引入依赖
<dependency>
<groupId>cn.huangdayu</groupId>
<artifactId>almanac</artifactId>
<version>20211128</version>
</dependency>
代码示例
/**
* 日历
*
* @param timeZoneDTO
* @return
*/
AlmanacUtils.ofDay(new TimeZoneDTO("广东省","徐闻县",Calendar.getInstance()));
/**
* 月历
*
* @param timeZoneDTO
* @return
*/
AlmanacUtils.ofMonth(new TimeZoneDTO("广东省","徐闻县",Calendar.getInstance()));
/**
* 集成抽象类的用法
*/
public class AlmanacApp extends Almanac {
public static void main(String[] args) {
Almanac almanac = new AlmanacApp();
AlmanacDTO almanacDTO = almanac.ofYear()[7][11];
TestUtils.pakMap(almanacDTO);
for (Map.Entry<String, String> entry : TestUtils.MAP.entrySet()) {
System.out.println(entry.getKey() + entry.getValue());
}
}
@Override
public TimeZoneDTO initTimeZone() {
return new TimeZoneDTO("广东省","徐闻县", "2021-01-29 11:13:29");
}
}
数据示例
key | value | value | value |
---|---|---|---|
日期 |
2018年11月01日 | 1995年08月12日 | 0001年01月01日 |
时间 |
11时06分48秒667毫秒 | 11时10分10秒00毫秒 | 11时10分10秒00毫秒 |
星期 |
星期四 | 星期六 | 星期一 |
地点 |
广东 徐闻 | 广东 徐闻 | 广东 徐闻 |
年号 |
[当代]新中国 公历纪元2018年 | [当代]新中国 公历纪元1995年 | [西汉]平帝 刘衍 元始1年 |
农历 |
戊戌狗年玖月廿四 | 乙亥猪年柒月十七 | 庚申鸡年冬月十八 |
时辰 |
午时 | 午时 | 午时 |
黄历 |
戊戌年壬戌月丁酉日丙午时 | 乙亥年甲申月乙亥日壬午时 | 庚申年戊子月丁丑日丙午时 |
天干 |
戊壬丁丙 | 乙甲乙壬 | 庚戊丁丙 |
地支 |
戌戌酉午 | 亥申亥午 | 申子丑午 |
八字 |
戊戌壬戌丁酉丙午 | 乙亥甲申乙亥壬午 | 庚申戊子丁丑丙午 |
回历 |
1440年2月21日 | 1416年3月15日 | -640年5月16日 |
儒略日 |
2458424 | 2449942 | 1721426 |
黄帝纪年 |
开元4716年 | 开元4693年 | 开元2698年 |
生肖 |
狗 | 猪 | 鸡 |
节假日 |
无 | 无 | 一九第8天 |
经度 |
东经 110°16’67” | 东经 110°16’67” | 东经 110°16’67” |
纬度 |
北纬 20°33’33” | 北纬 20°33’33” | 北纬 20°33’33” |
时区 |
+0800 东八区 | +0800 东八区 | +0800 东八区 |
港口 |
乌石港 | 乌石港 | 乌石港 |
昼长 |
11:22:55 | 12:52:48 | 10:54:50 |
夜长 |
12:37:04 | 11:07:11 | 13:05:09 |
天亮 |
06:18:41 | 05:55:05 | 06:50:20 |
日出 |
06:41:27 | 06:18:10 | 07:14:22 |
中天 |
12:22:54 | 12:44:34 | 12:41:47 |
日落 |
18:04:22 | 19:10:58 | 18:09:12 |
天黑 |
18:27:07 | 19:34:03 | 18:33:14 |
月出 |
00:13:02 | 20:13:13 | 03:35:37 |
月中 |
06:55:44 | 13:52:54 | 09:30:08 |
月落 |
13:38:27 | 07:32:35 | 15:24:39 |
月相 |
下弦 00:40:14 | 无 | 无 |
月天数 |
30天 | 30天 | 30天 |
大月否 |
是 | 是 | 是 |
闰月否 |
否 | 否 | 否 |
闰年否 |
否 | 是 | 否 |
星座 |
天蝎座 | 狮子座 | 摩羯座 |
下一节气 |
2018-11-07 19:31:39 立冬 | 1995-08-23 22:34:50 处暑 | 1-01-06 20:41:46 小寒 |
春分 |
2018-03-21 00:15:24 | 1995-03-21 10:14:27 | 1-03-23 05:43:49 |
夏至 |
2018-06-21 18:07:12 | 1995-06-22 04:34:22 | 1-06-25 04:53:32 |
秋分 |
2018-09-23 09:54:01 | 1995-09-23 20:13:00 | 1-09-25 15:39:49 |
冬至 |
2018-12-22 06:22:38 | 1995-12-22 16:16:47 | 1-12-23 08:19:28 |
应用示例
应用下载
应用源码
不足之处
- 算法并不完全准确,个别数据进度不高
- 时间无法进入公元前
- 天文历信息不足,如缺失方位、赤纬、时角、黄经、黄纬、潮汐、太阳高度角、地球直射位置、地球远日点、地球近日点、日食月食等
相关文档
参考文献
在线工具
相关开源
日历文献
License
Copyright 2017-12-4 huangdayu
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.