mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
修复CalendarUtil.isSameMonth没有判断公元前导致不一致的问题
This commit is contained in:
@@ -395,7 +395,8 @@ public class CalendarUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个日期是否为同一月
|
||||
* 比较两个日期是否为同一月<br>
|
||||
* 同一个月的意思是:ERA(公元)、year(年)、month(月)都一致。
|
||||
*
|
||||
* @param cal1 日期1
|
||||
* @param cal2 日期2
|
||||
@@ -407,7 +408,9 @@ public class CalendarUtil {
|
||||
throw new IllegalArgumentException("The date must not be null");
|
||||
}
|
||||
return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && //
|
||||
cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH);
|
||||
cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) &&
|
||||
// issue#3011@Github
|
||||
cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -0,0 +1,23 @@
|
||||
package cn.hutool.core.date;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
public class Issue3011Test {
|
||||
@Test
|
||||
public void isSameMonthTest() {
|
||||
// https://github.com/dromara/hutool/issues/3011
|
||||
// 判断是否同一个月,还需考虑公元前和公元后的的情况
|
||||
// 此处公元前2020年和公元2021年返回年都是2021
|
||||
final Calendar calendar1 = Calendar.getInstance();
|
||||
calendar1.set(-2020, Calendar.FEBRUARY, 12);
|
||||
|
||||
final Calendar calendar2 = Calendar.getInstance();
|
||||
calendar2.set(2021, Calendar.FEBRUARY, 12);
|
||||
|
||||
|
||||
Assert.assertFalse(DateUtil.isSameMonth(calendar1, calendar2));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user