diff --git a/CHANGELOG.md b/CHANGELOG.md index dca02b2df..db36640d9 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ### 🐞Bug修复 * 【extra 】 `Sftp``reconnectIfTimeout`方法改为捕获所有异常(issue#3989@Github) +* 【core 】 修复`ChineseDate `闰年闰月节日获取问题(issue#ICL1BT@Gitee) ------------------------------------------------------------------------------------------------------------- # 5.8.39(2025-06-20) diff --git a/hutool-core/src/main/java/cn/hutool/core/date/ChineseDate.java b/hutool-core/src/main/java/cn/hutool/core/date/ChineseDate.java index 3bdda284d..6fe15d444 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/ChineseDate.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/ChineseDate.java @@ -329,7 +329,7 @@ public class ChineseDate { * @return 获得农历节日 */ public String getFestivals() { - return StrUtil.join(",", LunarFestival.getFestivals(this.year, this.month, day)); + return StrUtil.join(",", LunarFestival.getFestivals(this.year, this.isLeapMonth ? this.month - 1 : this.month, day)); } /** diff --git a/hutool-core/src/test/java/cn/hutool/core/date/chinese/IssueICL1BTTest.java b/hutool-core/src/test/java/cn/hutool/core/date/chinese/IssueICL1BTTest.java new file mode 100644 index 000000000..b1e539d27 --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/date/chinese/IssueICL1BTTest.java @@ -0,0 +1,21 @@ +package cn.hutool.core.date.chinese; + +import cn.hutool.core.date.ChineseDate; +import cn.hutool.core.date.DateUtil; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.Date; + +public class IssueICL1BTTest { + @Test + void getFestivalsTest(){ + String date = "2025-07-31"; + Date productionDate = DateUtil.parseDate( date); + ChineseDate chineseDate = new ChineseDate(productionDate); + System.out.println(chineseDate.isLeapMonth()); + Assertions.assertTrue(chineseDate.isLeapMonth()); + String festivals = chineseDate.getFestivals(); + Assertions.assertEquals("", festivals); + } +}