Closed afterow closed 1 month ago
LunarHour为农历时辰,实例化参数为农历年、农历月(闰月用负数)、农历日、时、分、秒,而不是公历。如果你要使用公历时刻转农历时辰,需要使用SolarTime,转换为LunarHour,再得到八字。
LunarHour为农历时辰,实例化参数为农历年、农历月(闰月用负数)、农历日、时、分、秒,而不是公历。如果你要使用公历时刻转农历时辰,需要使用SolarTime,转换为LunarHour,再得到八字。
你的SolarTime的逻辑我看不懂,能否提供一个北京时间转换成LunarHour或者八字(eightChar)Java代码
单元测试用例里有啊,EightCharTest.java
` @Test
public void test8() {
// 北京时间2005年12月23日,08:37:00转八字
EightChar eightChar = SolarTime.fromYmdHms(2005, 12, 23, 8, 37, 0).getLunarHour().getEightChar();
Assert.assertEquals("乙酉", eightChar.getYear().getName());
Assert.assertEquals("戊子", eightChar.getMonth().getName());
Assert.assertEquals("辛巳", eightChar.getDay().getName());
Assert.assertEquals("壬辰", eightChar.getHour().getName());
} `
好的谢谢,解决了,看来我得换个好的ide了
主题:关于 tyme4j 库中
lunarHour.eightChar
方法的天干地支计算错误反馈尊敬的6tail先生
您好!首先感谢您创建了tyme4j这样一个有用的库,它为处理农历和八字信息提供了极大的便利。然而,在使用
lunarHour.eightChar
方法查询特定农历时辰的八字信息时,我遇到了一些问题,希望您能帮忙查看并解决。问题描述
我发现
lunarHour.eightChar
方法返回的天干地支组合与我所知的传统天干地支计算规则不符。在尝试查询2024年09月21日21时16分43秒的农历时辰时,返回的八字信息与通过其他可靠来源(如传统农历算法或专业软件)计算得到的结果不一致。复现步骤
lunarHour.eightChar
方法,并传入代表特定农历时辰的参数(例如,2024年09月21日21时16分43秒)。期望结果
对于2024年09月21日21时16分43秒的农历时辰,期望的八字信息应为“甲辰年 癸酉月 戊子日 癸亥时”。
实际结果
然而,
lunarHour.eightChar
方法实际返回的天干地支信息是“甲辰 甲戌 庚申 丁亥”,这与期望的结果不符,导致计算结果错误。我的相关代码
恢复建议
我猜测这个问题可能与农历月份或时辰的转换逻辑有关,在你项目的相关代码src/main/java/com/tyme/eightchar/EightChar.java找不到可以修改的地方,可能bug🐛在农历的处理是,我的Java水平比较菜解决不了,希望你有空恢复下,谢谢!!!