diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e18cef..f61fcf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,3 +32,7 @@ ## [1.7.2] - 2025-03-05 1. 修复每日宜忌错误。 2. 更新2018之后的△T参数。 + +## [1.7.3] - 2025-04-07 +1. 修复个别日太岁方位的错误。 +2. 修复八字身宫计算错误的问题。 diff --git a/README.md b/README.md index 7dae443..cd0f7af 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ lunar是一款无第三方依赖的公历(阳历)、农历(阴历、老黄历) cn.6tail lunar - 1.7.2 + 1.7.3 ``` diff --git a/README_EN.md b/README_EN.md index 7a39371..78a792e 100644 --- a/README_EN.md +++ b/README_EN.md @@ -12,7 +12,7 @@ lunar is a calendar library for Solar and Chinese Lunar. cn.6tail lunar - 1.7.2 + 1.7.3 ``` diff --git a/pom.xml b/pom.xml index d491112..e3541e8 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ cn.6tail lunar jar - 1.7.2 + 1.7.3 ${project.groupId}:${project.artifactId} https://github.com/6tail/lunar-java a calendar library for Solar and Chinese Lunar diff --git a/src/main/java/com/nlf/calendar/EightChar.java b/src/main/java/com/nlf/calendar/EightChar.java index 9422eb6..ca464c0 100644 --- a/src/main/java/com/nlf/calendar/EightChar.java +++ b/src/main/java/com/nlf/calendar/EightChar.java @@ -527,15 +527,12 @@ public class EightChar { public String getShenGong() { int monthZhiIndex = LunarUtil.find(getMonthZhi(), MONTH_ZHI, 0); int timeZhiIndex = LunarUtil.find(getTimeZhi(), LunarUtil.ZHI, 0); - int offset = monthZhiIndex + timeZhiIndex; - while (offset > 12) { - offset -= 12; - } - int ganIndex = (lunar.getYearGanIndexExact() + 1) * 2 + (offset % 12); + int offset = (monthZhiIndex + timeZhiIndex - 1) % 12; + int ganIndex = (lunar.getYearGanIndexExact() + 1) * 2 + offset; while (ganIndex > 10) { ganIndex -= 10; } - return LunarUtil.GAN[ganIndex] + MONTH_ZHI[offset]; + return LunarUtil.GAN[ganIndex + 1] + MONTH_ZHI[offset + 1]; } /** diff --git a/src/main/java/com/nlf/calendar/Lunar.java b/src/main/java/com/nlf/calendar/Lunar.java index d573543..40bc092 100644 --- a/src/main/java/com/nlf/calendar/Lunar.java +++ b/src/main/java/com/nlf/calendar/Lunar.java @@ -1347,11 +1347,11 @@ public class Lunar { protected String getDayPositionTaiSui(String dayInGanZhi, int yearZhiIndex) { String p; - if ("甲子,乙丑,丙寅,丁卯,戊辰,已巳".contains(dayInGanZhi)) { + if ("甲子,乙丑,丙寅,丁卯,戊辰,己巳".contains(dayInGanZhi)) { p = "震"; - } else if ("丙子,丁丑,戊寅,已卯,庚辰,辛巳".contains(dayInGanZhi)) { + } else if ("丙子,丁丑,戊寅,己卯,庚辰,辛巳".contains(dayInGanZhi)) { p = "离"; - } else if ("戊子,已丑,庚寅,辛卯,壬辰,癸巳".contains(dayInGanZhi)) { + } else if ("戊子,己丑,庚寅,辛卯,壬辰,癸巳".contains(dayInGanZhi)) { p = "中"; } else if ("庚子,辛丑,壬寅,癸卯,甲辰,乙巳".contains(dayInGanZhi)) { p = "兑"; diff --git a/src/test/java/test/BaZiTest.java b/src/test/java/test/BaZiTest.java index 52a6001..a1cd58b 100644 --- a/src/test/java/test/BaZiTest.java +++ b/src/test/java/test/BaZiTest.java @@ -235,7 +235,7 @@ public class BaZiTest { @Test public void testShenGong1() { Lunar lunar = new Solar(1994, 12, 6, 2, 0, 0).getLunar(); - Assert.assertEquals("身宫", "乙丑", lunar.getEightChar().getShenGong()); + Assert.assertEquals("身宫", "丁丑", lunar.getEightChar().getShenGong()); } @Test @@ -413,7 +413,7 @@ public class BaZiTest { Solar solar = new Solar(1986, 5, 29, 13, 37, 0); Lunar lunar = solar.getLunar(); EightChar eightChar = lunar.getEightChar(); - Assert.assertEquals("己丑", eightChar.getShenGong()); + Assert.assertEquals("辛丑", eightChar.getShenGong()); } @Test @@ -543,4 +543,10 @@ public class BaZiTest { Assert.assertEquals(expected, actual); } + @Test + public void test32() { + Lunar lunar = Solar.fromYmdHms(1980, 6, 15, 12, 30, 30).getLunar(); + EightChar eightChar = lunar.getEightChar(); + Assert.assertEquals("身宫", "己丑", eightChar.getShenGong()); + } }