From e4a18d0c798c99fd935b6a7e328a516a47064cd2 Mon Sep 17 00:00:00 2001 From: pricelees Date: Sat, 13 Sep 2025 15:33:46 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9E=85=EB=A0=A5=EB=90=9C=20=EB=82=A0?= =?UTF-8?q?=EC=A7=9C=20=EA=B8=B0=EC=A4=80=20=EC=A7=80=EB=82=9C=20=EC=A3=BC?= =?UTF-8?q?=20=EC=9D=BC=EC=9A=94=EC=9D=BC=EC=9D=84=20=EC=B0=BE=EB=8A=94=20?= =?UTF-8?q?=EC=9C=A0=ED=8B=B8=20=EB=B0=8F=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/roomescape/common/util/DateUtils.kt | 11 +++++++++++ .../roomescape/common/util/DateUtilsTest.kt | 15 +++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 src/main/kotlin/roomescape/common/util/DateUtils.kt create mode 100644 src/test/kotlin/roomescape/common/util/DateUtilsTest.kt diff --git a/src/main/kotlin/roomescape/common/util/DateUtils.kt b/src/main/kotlin/roomescape/common/util/DateUtils.kt new file mode 100644 index 00000000..4ad16583 --- /dev/null +++ b/src/main/kotlin/roomescape/common/util/DateUtils.kt @@ -0,0 +1,11 @@ +package roomescape.common.util + +import java.time.DayOfWeek +import java.time.LocalDate +import java.time.temporal.TemporalAdjusters + +object DateUtils { + fun getSundayOfPreviousWeek(date: LocalDate): LocalDate = date + .minusWeeks(1) + .with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY)) +} diff --git a/src/test/kotlin/roomescape/common/util/DateUtilsTest.kt b/src/test/kotlin/roomescape/common/util/DateUtilsTest.kt new file mode 100644 index 00000000..30a2c6b3 --- /dev/null +++ b/src/test/kotlin/roomescape/common/util/DateUtilsTest.kt @@ -0,0 +1,15 @@ +package roomescape.common.util + +import io.kotest.core.spec.style.StringSpec +import io.kotest.matchers.shouldBe +import java.time.LocalDate + +class DateUtilsTest : StringSpec({ + "입력된 날짜의 이전 주 일요일을 찾는다." { + val expected = LocalDate.of(2025, 8, 31) + + for (i in 7..13){ + DateUtils.getSundayOfPreviousWeek(LocalDate.of(2025, 9, i)) shouldBe expected + } + } +})