{"repo":"Lofanmi/chinese-calendar-golang","free":true,"listed":false,"github":"https://github.com/Lofanmi/chinese-calendar-golang","clone":"git clone https://github.com/Lofanmi/chinese-calendar-golang.git","description":"📅 公历 农历 干支历转换包 提供精确的日历转换","language":"Go","stars":196,"topics":["chinese","calendar","solar","lunar","ganzhi","guoli","nongli","ganzhili"],"license":"MIT","category":"productivity","readme_excerpt":"chinese-calendar-golang 公历, 农历, 干支历转换包, 提供精确的日历转换. 使用 Go 编写, 觉得好用的给 Star 呗 觉得 好用 , 而不是觉得 有用 . 如果不好用, 欢迎向我提 issue, 我会抽空不断改进它! 真希望有人打钱打钱打钱给我啊哈哈哈哈!!! 如何安装 新版本已支持 Go Module, 可以直接引入。 如果您还在使用 GOPATH, 别忘了 go get : 用法 原理 1. 公历的计算比较容易, 生肖, 星座等的转换见源码, 不啰嗦哈; 2. 农历的数据和算法参考了chinese-calendar的实现, 还有 1900年至2100年公历、农历互转Js代码 - 晶晶的博客, 节气的舍去了, 因为在干支历和生肖的计算上不够精确; 3. 干支历的转换是最繁琐的, 其计算依据是二十四节气. 我结合了网上的文章, 用天文方法计算了 1904-2024 的二十四节气时间. 目前使用的是寿星天文历的时间, 支持 1904-3000 年, 精确到秒, 并与香港天文台进行比较, 误差基本在 1秒 以内, 大家如果有以往的数据, 可以看下源码比对一下. 使用须知 1. 干支历的时间范围是 1904-3000 年, 主要也是因为 1904 年之前的时间戳, 在32位的 PHP 下会识别不出(溢出), 而且再早的时间, 其实意义也不大, 因为之前遗留的问题开放了 NewSolarterm 接口, 为保证兼容性, index 不能随便改, 2024之后...好像也不会用到吧. 研究二十四节气这个算法的时间花了很长很长, 反而撸代码的时间不算太多 ; 2. 实际上, 农历的时间也是可以根据天文方法计算出来的. 计算的过程, 也需要先计算二十四节气和每月的正月初一的日期(日月合朔), 才能知道闰月的信息(所以农历是阴阳历). 不过已经有了数据, 我也就懒了, 直接拿来用...所以农历的算法我还没有实现 (我在2025年实现了!时隔7年!); 3. 农历的时间范围是 1900-3000 年, 数据来自寿星万年历算法. 晶晶的博客 注意只支持到 2100 年, 并且 2057 年存在错误(2057-09-28、2057-10-27), 后续我给个 PR 到那边仓库, 后面全网大家都可以拿到最准确的数据了 公历(阳历) - 字段说明 农历(阴阳历) - 字段说明 干支历 - 字段说明 输出示例 输出日历 计算节气时间间隔 TODO 1. 完善单元测试 2. 完善注释 3. 完善文档 4. 支持更大范围的时间 5. 把农历的算法实现一下 (我在2025年实现了!时隔7年!) 6. 支持 go module 参考资料 - 算法系列之十八：用天文方法计算二十四节气（上） - 算法系列之十八：用天文方法计算二十四节气（下） - overtrue/chinese-calendar - 1900年至2100年公历、农历互转Js代码 - 晶晶的博客 - 香港天文台 - 五虎遁元 - 五鼠遁元 - NASA License MIT Stargazers over time","default_branch":null,"files":null,"tree":[],"storefront":"/r/Lofanmi","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Lofanmi/chinese-calendar-golang/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}