Skip to content

HuangDayu/Almanac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Almanac 历

GitHub watch GitHub issues GitHub forks GitHub stars LICENSE Badge

本项目学习寿星天文历日梭万年历,包括但不限皇历、生辰八字、日出月落、农历、黄历、干支、节气、月相、经纬度、节假日、伊斯兰历、儒略历、天文历、回历、西历等日历数据和天文数据的计算,支持年、月、日的计算范围。

本项目部分源码源于开源,所以也完全开源,无授权许可,禁止商用。

如何使用

引入依赖

<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.