diff --git a/CHANGELOG.md b/CHANGELOG.md
index ccd036e..68aa4cd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -40,7 +40,12 @@
## [1.7.4] - 2025-04-29
1. 修复身宫报错的问题。
-## [1.7.5] - 2025-09-17
+## [1.7.5] - 2025-10-01
1. 修复:极端情况下八字转公历时刻出现遗漏的问题。
2. 优化:更新△T参数。
3. 优化:吉神宜驱、凶神宜忌。
+
+## [1.7.6] - 2025-10-21
+1. 修复:候的错别字。
+2. 修复:吉神宜驱、凶神宜忌的错误。
+3. 修复:农历闰月及后续月份的干支错误。
diff --git a/README.md b/README.md
index 153d8e1..c0b3121 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ lunar是一款无第三方依赖的公历(阳历)、农历(阴历、老黄历)
cn.6tail
lunar
- 1.7.5
+ 1.7.6
```
diff --git a/README_EN.md b/README_EN.md
index 4e3864e..2cb112f 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.5
+ 1.7.6
```
diff --git a/pom.xml b/pom.xml
index 8525055..246e85b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
cn.6tail
lunar
jar
- 1.7.5
+ 1.7.6
${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/LunarMonth.java b/src/main/java/com/nlf/calendar/LunarMonth.java
index 01a9755..f57e5b1 100644
--- a/src/main/java/com/nlf/calendar/LunarMonth.java
+++ b/src/main/java/com/nlf/calendar/LunarMonth.java
@@ -49,7 +49,7 @@ public class LunarMonth {
this.dayCount = dayCount;
this.firstJulianDay = firstJulianDay;
this.index = index;
- this.zhiIndex = (index - 1 + LunarUtil.BASE_MONTH_ZHI_INDEX) % 12;
+ this.zhiIndex = (Math.abs(lunarMonth) - 1 + LunarUtil.BASE_MONTH_ZHI_INDEX) % 12;
}
/**
@@ -109,7 +109,7 @@ public class LunarMonth {
public int getGanIndex() {
int offset = (LunarYear.fromYear(year).getGanIndex() + 1) % 5 * 2;
- return (index - 1 + offset) % 10;
+ return (Math.abs(month) - 1 + offset) % 10;
}
public String getGan() {
diff --git a/src/main/java/com/nlf/calendar/util/LunarUtil.java b/src/main/java/com/nlf/calendar/util/LunarUtil.java
index c0dcf5b..34ec518 100644
--- a/src/main/java/com/nlf/calendar/util/LunarUtil.java
+++ b/src/main/java/com/nlf/calendar/util/LunarUtil.java
@@ -22,7 +22,7 @@ public class LunarUtil{
/** 候 */
public static final String[] HOU = {"初候", "二候", "三候"};
/** 物候 */
- public static final String[] WU_HOU = {"蚯蚓结","麋角解","水泉动","雁北乡","鹊始巢","雉始雊","鸡始乳","征鸟厉疾","水泽腹坚","东风解冻","蛰虫始振","鱼陟负冰","獭祭鱼","候雁北","草木萌动","桃始华","仓庚鸣","鹰化为鸠","玄鸟至","雷乃发声","始电","桐始华","田鼠化为鴽","虹始见","萍始生","鸣鸠拂奇羽","戴胜降于桑","蝼蝈鸣","蚯蚓出","王瓜生","苦菜秀","靡草死","麦秋至","螳螂生","鵙始鸣","反舌无声","鹿角解","蜩始鸣","半夏生","温风至","蟋蟀居壁","鹰始挚","腐草为萤","土润溽暑","大雨行时","凉风至","白露降","寒蝉鸣","鹰乃祭鸟","天地始肃","禾乃登","鸿雁来","玄鸟归","群鸟养羞","雷始收声","蛰虫坯户","水始涸","鸿雁来宾","雀入大水为蛤","菊有黄花","豺乃祭兽","草木黄落","蛰虫咸俯","水始冰","地始冻","雉入大水为蜃","虹藏不见","天气上升地气下降","闭塞而成冬","鹖鴠不鸣","虎始交","荔挺出"};
+ public static final String[] WU_HOU = {"蚯蚓结","麋角解","水泉动","雁北乡","鹊始巢","雉始雊","鸡始乳","征鸟厉疾","水泽腹坚","东风解冻","蛰虫始振","鱼陟负冰","獭祭鱼","候雁北","草木萌动","桃始华","仓庚鸣","鹰化为鸠","玄鸟至","雷乃发声","始电","桐始华","田鼠化为鴽","虹始见","萍始生","鸣鸠拂其羽","戴胜降于桑","蝼蝈鸣","蚯蚓出","王瓜生","苦菜秀","靡草死","麦秋至","螳螂生","鵙始鸣","反舌无声","鹿角解","蜩始鸣","半夏生","温风至","蟋蟀居壁","鹰始挚","腐草为萤","土润溽暑","大雨行时","凉风至","白露降","寒蝉鸣","鹰乃祭鸟","天地始肃","禾乃登","鸿雁来","玄鸟归","群鸟养羞","雷始收声","蛰虫坯户","水始涸","鸿雁来宾","雀入大水为蛤","菊有黄花","豺乃祭兽","草木黄落","蛰虫咸俯","水始冰","地始冻","雉入大水为蜃","虹藏不见","天气上升地气下降","闭塞而成冬","鹖鴠不鸣","虎始交","荔挺出"};
/** 天干 */
public static final String[] GAN = {"","甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
/** 喜神方位,《喜神方位歌》:甲己在艮乙庚乾,丙辛坤位喜神安。丁壬只在离宫坐,戊癸原在在巽间。 */
@@ -893,7 +893,7 @@ public class LunarUtil{
List l = new ArrayList();
int m = monthZhiIndex - 2;
if (m < 0) {
- m += 10;
+ m += 12;
}
Matcher matcher = Pattern.compile(String.format(";%02X(.[^;]*)", getJiaZiIndex(dayGanZhi))).matcher(DAY_SHEN_SHA[m]);
if (matcher.find()) {
@@ -921,7 +921,7 @@ public class LunarUtil{
List l = new ArrayList();
int m = monthZhiIndex - 2;
if (m < 0) {
- m += 10;
+ m += 12;
}
Matcher matcher = Pattern.compile(String.format(";%02X(.[^;]*)", getJiaZiIndex(dayGanZhi))).matcher(DAY_SHEN_SHA[m]);
if (matcher.find()) {
diff --git a/src/test/java/test/LunarMonthTest.java b/src/test/java/test/LunarMonthTest.java
index 3a17d5a..e24f173 100644
--- a/src/test/java/test/LunarMonthTest.java
+++ b/src/test/java/test/LunarMonthTest.java
@@ -22,14 +22,14 @@ public class LunarMonthTest {
public void test1(){
LunarMonth month = LunarMonth.fromYm(2023, -2);
Assert.assertEquals(3, month.getIndex());
- Assert.assertEquals("丙辰", month.getGanZhi());
+ Assert.assertEquals("乙卯", month.getGanZhi());
}
@Test
public void test2(){
LunarMonth month = LunarMonth.fromYm(2023, 3);
Assert.assertEquals(4, month.getIndex());
- Assert.assertEquals("丁巳", month.getGanZhi());
+ Assert.assertEquals("丙辰", month.getGanZhi());
}
@Test
@@ -43,7 +43,7 @@ public class LunarMonthTest {
public void test4(){
LunarMonth month = LunarMonth.fromYm(2023, 12);
Assert.assertEquals(13, month.getIndex());
- Assert.assertEquals("丙寅", month.getGanZhi());
+ Assert.assertEquals("乙丑", month.getGanZhi());
}
@Test
@@ -56,7 +56,7 @@ public class LunarMonthTest {
@Test
public void test6(){
LunarMonth month = LunarMonth.fromYm(2023, 9);
- Assert.assertEquals("癸亥", month.getGanZhi());
+ Assert.assertEquals("壬戌", month.getGanZhi());
}
}
diff --git a/src/test/java/test/LunarTest.java b/src/test/java/test/LunarTest.java
index d8678fe..6dc0407 100644
--- a/src/test/java/test/LunarTest.java
+++ b/src/test/java/test/LunarTest.java
@@ -685,4 +685,12 @@ public class LunarTest {
Assert.assertEquals("[时德, 阳德, 民日, 玉宇, 司命]", lunar.getDayJiShen().toString());
Assert.assertEquals("[河魁, 死神, 天吏, 致死, 往亡]", lunar.getDayXiongSha().toString());
}
+
+ @Test
+ public void test101() {
+ Solar solar = new Solar(2025, 12, 15);
+ Lunar lunar = solar.getLunar();
+ Assert.assertEquals("[阳德, 六仪, 续世, 解神, 司命]", lunar.getDayJiShen().toString());
+ Assert.assertEquals("[月破, 大耗, 灾煞, 天火, 厌对, 招摇, 五虚, 血忌]", lunar.getDayXiongSha().toString());
+ }
}