从LocalDate中获取Week

This commit is contained in:
Ron 2021-10-01 01:06:18 +08:00
parent c33eb83a90
commit f553d6d2cb
3 changed files with 59 additions and 0 deletions

View File

@ -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());
}
}

View File

@ -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枚举对象<br>
*
* @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);
}
}

View File

@ -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);
}
}