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