mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-24 18:04:54 +08:00
fix bug
This commit is contained in:
parent
ea6eb422b3
commit
4a85b01b38
@ -358,6 +358,7 @@ public class CalendarUtil {
|
||||
}
|
||||
// endregion
|
||||
|
||||
// region ----- isSame
|
||||
/**
|
||||
* 比较两个日期是否为同一天
|
||||
*
|
||||
@ -366,12 +367,7 @@ public class CalendarUtil {
|
||||
* @return 是否为同一天
|
||||
*/
|
||||
public static boolean isSameDay(final Calendar cal1, final Calendar cal2) {
|
||||
if (cal1 == null || cal2 == null) {
|
||||
throw new IllegalArgumentException("The date must not be null");
|
||||
}
|
||||
return cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR) && //
|
||||
cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && //
|
||||
cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA);
|
||||
return isSameYear(cal1, cal2) && cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -409,7 +405,8 @@ public class CalendarUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个日期是否为同一月
|
||||
* 比较两个日期是否为同一月<br>
|
||||
* 同一个月的意思是:ERA(公元)、year(年)、month(月)都一致。
|
||||
*
|
||||
* @param cal1 日期1
|
||||
* @param cal2 日期2
|
||||
@ -417,11 +414,24 @@ public class CalendarUtil {
|
||||
* @since 5.4.1
|
||||
*/
|
||||
public static boolean isSameMonth(final Calendar cal1, final Calendar cal2) {
|
||||
return isSameYear(cal1, cal2) && cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH);
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个日期是否为同一年r>
|
||||
* 同一个月的意思是:ERA(公元)、year(年)都一致。
|
||||
*
|
||||
* @param cal1 日期1
|
||||
* @param cal2 日期2
|
||||
* @return 是否为同一年
|
||||
*/
|
||||
public static boolean isSameYear(final Calendar cal1, final Calendar cal2) {
|
||||
if (cal1 == null || cal2 == null) {
|
||||
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);
|
||||
// issue#3011@Github
|
||||
cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -444,6 +454,7 @@ public class CalendarUtil {
|
||||
|
||||
return date1.getTimeInMillis() == date2.getTimeInMillis();
|
||||
}
|
||||
// endregion
|
||||
|
||||
/**
|
||||
* 获得指定日期年份和季度<br>
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user