mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
!516 DateUtil 添加两个日期是否同一周方法,补充 test
Merge pull request !516 from naohu/v5-dev
This commit is contained in:
commit
fb216a0bff
@ -348,6 +348,34 @@ public class CalendarUtil {
|
||||
cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA);
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个日期是否为同一周
|
||||
*
|
||||
* @param cal1 日期1
|
||||
* @param cal2 日期2
|
||||
* @param isMon 是否为周一。国内第一天为星期一,国外第一天为星期日
|
||||
* @return 是否为同一周
|
||||
*/
|
||||
public static boolean isSameWeek(Calendar cal1, Calendar cal2, boolean isMon) {
|
||||
if (cal1 == null || cal2 == null) {
|
||||
throw new IllegalArgumentException("The date must not be null");
|
||||
}
|
||||
// 把所传日期设置为其当前周的第一天
|
||||
// 比较设置后的两个日期是否是同一天:true 代表同一周
|
||||
if (isMon) {
|
||||
cal1.setFirstDayOfWeek(Calendar.MONDAY);
|
||||
cal1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
|
||||
cal2.setFirstDayOfWeek(Calendar.MONDAY);
|
||||
cal2.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
|
||||
} else {
|
||||
cal1.setFirstDayOfWeek(Calendar.SUNDAY);
|
||||
cal1.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
|
||||
cal2.setFirstDayOfWeek(Calendar.SUNDAY);
|
||||
cal2.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
|
||||
}
|
||||
return isSameDay(cal1, cal2);
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个日期是否为同一月
|
||||
*
|
||||
|
@ -1586,6 +1586,21 @@ public class DateUtil extends CalendarUtil {
|
||||
return CalendarUtil.isSameDay(calendar(date1), calendar(date2));
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个日期是否为同一周
|
||||
*
|
||||
* @param date1 日期1
|
||||
* @param date2 日期2
|
||||
* @param isMon 是否为周一。国内第一天为星期一,国外第一天为星期日
|
||||
* @return 是否为同一周
|
||||
*/
|
||||
public static boolean isSameWeek(final Date date1, final Date date2, boolean isMon) {
|
||||
if (date1 == null || date2 == null) {
|
||||
throw new IllegalArgumentException("The date must not be null");
|
||||
}
|
||||
return CalendarUtil.isSameWeek(calendar(date1), calendar(date2), isMon);
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个日期是否为同一月
|
||||
*
|
||||
|
@ -1004,4 +1004,17 @@ public class DateUtilTest {
|
||||
final DateTime parse = DateUtil.parse("2021-12-01", DatePattern.NORM_DATE_FORMATTER);
|
||||
Assert.assertEquals("2021-12-01 00:00:00", parse.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isSameWeektest() {
|
||||
// 周六与周日比较
|
||||
final boolean isSameWeek = DateUtil.isSameWeek(DateTime.of("2022-01-01", "yyyy-MM-dd"), DateTime.of("2022-01-02", "yyyy-MM-dd"), true);
|
||||
Assert.assertTrue(isSameWeek);
|
||||
// 周日与周一比较
|
||||
final boolean isSameWeek1 = DateUtil.isSameWeek(DateTime.of("2022-01-02", "yyyy-MM-dd"), DateTime.of("2022-01-03", "yyyy-MM-dd"), false);
|
||||
Assert.assertTrue(isSameWeek1);
|
||||
// 跨月比较
|
||||
final boolean isSameWeek2 = DateUtil.isSameWeek(DateTime.of("2021-12-29", "yyyy-MM-dd"), DateTime.of("2022-01-01", "yyyy-MM-dd"), true);
|
||||
Assert.assertTrue(isSameWeek2);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user