From efeddc146999b73e0a56f7b3e736d523ab95f90b Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 21 Jan 2022 11:47:11 +0800 Subject: [PATCH] fix bug --- CHANGELOG.md | 3 ++- .../src/main/java/cn/hutool/core/date/ChineseDate.java | 2 +- .../test/java/cn/hutool/core/date/ChineseDateTest.java | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 602317ed0..680a1ace4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,12 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.7.21 (2022-01-20) +# 5.7.21 (2022-01-21) ### 🐣新特性 * 【extra 】 增加jetbrick模板支持 ### 🐞Bug修复 +* 【core 】 修复ChineseDate农历获取正月出现数组越界BUG(issue#2112@Github) ------------------------------------------------------------------------------------------------------------- # 5.7.20 (2022-01-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 061489bf3..1dc0d2136 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 @@ -92,7 +92,7 @@ public class ChineseDate { offset -= daysOfMonth; } - this.isLeapMonth = month == (leapMonth + 1); + this.isLeapMonth = leapMonth > 0 && (month == (leapMonth + 1)); if (hasLeapMonth && false == this.isLeapMonth) { // 当前月份前有闰月,则月份显示要-1,除非当前月份就是润月 month--; diff --git a/hutool-core/src/test/java/cn/hutool/core/date/ChineseDateTest.java b/hutool-core/src/test/java/cn/hutool/core/date/ChineseDateTest.java index da29455fb..e2d86d1e9 100644 --- a/hutool-core/src/test/java/cn/hutool/core/date/ChineseDateTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/date/ChineseDateTest.java @@ -105,4 +105,12 @@ public class ChineseDateTest { Assert.assertEquals("戊申猴年 五月初五", c1.toString()); Assert.assertEquals("戊申猴年 闰五月初五", c2.toString()); } + + @Test + public void getChineseMonthTest2(){ + //https://github.com/dromara/hutool/issues/2112 + ChineseDate springFestival = new ChineseDate(DateUtil.parseDate("2022-02-01")); + final String chineseMonth = springFestival.getChineseMonth(); + Assert.assertEquals("一月", chineseMonth); + } }