From 3b6cca7435a4256e57406dc70ed7e31d63948223 Mon Sep 17 00:00:00 2001 From: naooohu Date: Fri, 21 Jan 2022 00:55:34 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=8A=8A=E6=97=A5=E6=9C=9F=E4=B8=BA?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=BA=E5=BD=93=E5=89=8D=E5=91=A8=E7=9A=84?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E5=A4=A9=E4=BB=A3=E7=A0=81=E5=9D=97=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E5=88=B0=20CalendarUtil=20=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/date/CalendarUtil.java | 16 +++++++++++++++- .../main/java/cn/hutool/core/date/DateUtil.java | 15 +-------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/date/CalendarUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/CalendarUtil.java index 4c6d3093c..be7e6a41d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/CalendarUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/CalendarUtil.java @@ -353,12 +353,26 @@ public class CalendarUtil { * * @param cal1 日期1 * @param cal2 日期2 + * @param isMon 是否为周一。国内第一天为星期一,国外第一天为星期日 * @return 是否为同一周 */ - public static boolean isSameWeek(Calendar cal1, Calendar cal2) { + 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); } diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java index 066777c78..c887ef349 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java @@ -1598,20 +1598,7 @@ public class DateUtil extends CalendarUtil { if (date1 == null || date2 == null) { throw new IllegalArgumentException("The date must not be null"); } - Calendar calendar1 = calendar(date1); - Calendar calendar2 = calendar(date2); - if (isMon) { - calendar1.setFirstDayOfWeek(Calendar.MONDAY); - calendar1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); - calendar2.setFirstDayOfWeek(Calendar.MONDAY); - calendar2.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); - } else { - calendar1.setFirstDayOfWeek(Calendar.SUNDAY); - calendar1.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); - calendar2.setFirstDayOfWeek(Calendar.SUNDAY); - calendar2.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); - } - return CalendarUtil.isSameWeek(calendar1, calendar2); + return CalendarUtil.isSameWeek(calendar(date1), calendar(date2), isMon); } /**