Index: forgon-tools/src/test/java/com/forgon/tools/util/ForgonDateUtilsGetDayOfWeekTest.java =================================================================== diff -u --- forgon-tools/src/test/java/com/forgon/tools/util/ForgonDateUtilsGetDayOfWeekTest.java (revision 0) +++ forgon-tools/src/test/java/com/forgon/tools/util/ForgonDateUtilsGetDayOfWeekTest.java (revision 41360) @@ -0,0 +1,61 @@ +package com.forgon.tools.util; + +import org.junit.Test; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +/** + * ForgonDateUtils.getDayOfWeek() 的单元测试类 + */ +public class ForgonDateUtilsGetDayOfWeekTest { + + private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + /** + * 测试正常日期输入,验证返回正确的星期几 + */ + @Test + public void testGetDayOfWeek_NormalDate() throws ParseException { + // 测试正常日期输入 + // 给定一个已知是周一的日期 + Date date = sdf.parse("2024-01-01"); + int dayOfWeek = ForgonDateUtils.getDayOfWeek(date); + assertEquals(Calendar.MONDAY, dayOfWeek, "2024-01-01 应该是周一"); + } + + /** + * 测试周日的情况 + */ + @Test + public void testGetDayOfWeek_Sunday() throws ParseException { + Date date = sdf.parse("2024-01-07"); + int dayOfWeek = ForgonDateUtils.getDayOfWeek(date); + assertEquals(Calendar.SUNDAY, dayOfWeek, "2024-01-07 应该是周日"); + } + + /** + * 测试跨年日期 + */ + @Test + public void testGetDayOfWeek_YearEnd() throws ParseException { + Date date = sdf.parse("2023-12-31"); + int dayOfWeek = ForgonDateUtils.getDayOfWeek(date); + assertEquals(Calendar.SUNDAY, dayOfWeek, "2023-12-31 应该是周日"); + } + + /** + * 测试 null 输入,应抛出 NullPointerException + */ + @Test + public void testGetDayOfWeek_NullInput() { + assertThrows(NullPointerException.class, () -> { + ForgonDateUtils.getDayOfWeek(null); + }, "传入 null 应抛出 NullPointerException"); + } +} Index: forgon-tools/src/main/java/com/forgon/tools/util/ForgonDateUtils.java =================================================================== diff -u -r41191 -r41360 --- forgon-tools/src/main/java/com/forgon/tools/util/ForgonDateUtils.java (.../ForgonDateUtils.java) (revision 41191) +++ forgon-tools/src/main/java/com/forgon/tools/util/ForgonDateUtils.java (.../ForgonDateUtils.java) (revision 41360) @@ -304,4 +304,23 @@ } return months; } + + /** + * 获取指定日期是星期几 + * @param date 日期对象 + * @return 1-7,分别表示周日到周六 + */ + public static int getDayOfWeek(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + return calendar.get(Calendar.DAY_OF_WEEK); + } + + /** + * 获取今天是星期几 + * @return 1-7,分别表示周日到周六 + */ + public static int getDayWeekOfToday() { + return getDayOfWeek(new Date()); + } }