From f553d6d2cbec44bf1709b6269eaa336270df31c3 Mon Sep 17 00:00:00 2001 From: Ron <56991633+ls586@users.noreply.github.com> Date: Fri, 1 Oct 2021 01:06:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=8ELocalDate=E4=B8=AD=E8=8E=B7=E5=8F=96We?= =?UTF-8?q?ek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hutool/core/date/LocalDateTimeUtil.java | 11 +++++++++ .../main/java/cn/hutool/core/date/Week.java | 24 +++++++++++++++++++ .../core/date/LocalDateTimeUtilTest.java | 24 +++++++++++++++++++ 3 files changed, 59 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java index 9b77d6577..df88c5199 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java @@ -512,4 +512,15 @@ public class LocalDateTimeUtil { final DayOfWeek dayOfWeek = localDate.getDayOfWeek(); return DayOfWeek.SATURDAY == dayOfWeek || DayOfWeek.SUNDAY == dayOfWeek; } + + /** + * 获取{@link LocalDate}对应的星期值 + * + * @param localDate 日期{@link LocalDate} + * @return {@link Week} + * @since 5.7.14 + */ + public static Week dayOfWeek(LocalDate localDate) { + return Week.of(localDate.getDayOfWeek()); + } } diff --git a/hutool-core/src/main/java/cn/hutool/core/date/Week.java b/hutool-core/src/main/java/cn/hutool/core/date/Week.java index aa905511f..6b7353534 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/Week.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/Week.java @@ -1,5 +1,6 @@ package cn.hutool.core.date; +import java.time.DayOfWeek; import java.util.Calendar; /** @@ -128,4 +129,27 @@ public enum Week { return null; } } + + /** + * 将 {@link DayOfWeek}星期相关值转换为Week枚举对象
+ * + * @see #SUNDAY + * @see #MONDAY + * @see #TUESDAY + * @see #WEDNESDAY + * @see #THURSDAY + * @see #FRIDAY + * @see #SATURDAY + * + * @param dayOfWeek DayOfWeek星期值 + * @return {@link Week} + * @since 5.7.14 + */ + public static Week of(DayOfWeek dayOfWeek) { + int week = dayOfWeek.ordinal() + 2; + if (week > 7) { + week = 1; + } + return of(week); + } } diff --git a/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java index 89f924dd3..8cd013d40 100644 --- a/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java @@ -149,4 +149,28 @@ public class LocalDateTimeUtilTest { final LocalDateTime endOfDay = LocalDateTimeUtil.endOfDay(localDateTime); Assert.assertEquals("2020-01-23T23:59:59.999999999", endOfDay.toString()); } + + @Test + public void dayOfWeekTest() { + final Week one = LocalDateTimeUtil.dayOfWeek(LocalDate.of(2021, 9, 20)); + Assert.assertEquals(Week.MONDAY, one); + + final Week two = LocalDateTimeUtil.dayOfWeek(LocalDate.of(2021, 9, 21)); + Assert.assertEquals(Week.TUESDAY, two); + + final Week three = LocalDateTimeUtil.dayOfWeek(LocalDate.of(2021, 9, 22)); + Assert.assertEquals(Week.WEDNESDAY, three); + + final Week four = LocalDateTimeUtil.dayOfWeek(LocalDate.of(2021, 9, 23)); + Assert.assertEquals(Week.THURSDAY, four); + + final Week five = LocalDateTimeUtil.dayOfWeek(LocalDate.of(2021, 9, 24)); + Assert.assertEquals(Week.FRIDAY, five); + + final Week six = LocalDateTimeUtil.dayOfWeek(LocalDate.of(2021, 9, 25)); + Assert.assertEquals(Week.SATURDAY, six); + + final Week seven = LocalDateTimeUtil.dayOfWeek(LocalDate.of(2021, 9, 26)); + Assert.assertEquals(Week.SUNDAY, seven); + } }