코틀린에서 어떤 날짜가 무슨 요일인지 확인하는 방법에 대해서 알아보겠습니다.

1. LocalDate를 이용한 방법

문자열로 된 날짜가 있을 때 DateTimeFormatterLocalDate를 이용하여 특정 날짜를 파싱할 수 있습니다.

어떤 날짜에 대한 LocalDate 객체를 생성하면, LocalDate의 dayOfWeek 값으로 요일 정보를 알 수 있습니다.

import java.time.LocalDate
import java.time.format.DateTimeFormatter

fun main() {
    val dateStr = "2023-09-15"
    val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
    val date = LocalDate.parse(dateStr, formatter)

    val dayOfWeek = date.dayOfWeek
    println("요일: $dayOfWeek")
}

Output:

요일: FRIDAY

2. Calendar를 이용한 방법

Calendar를 이용하여 요일 정보를 얻을 수도 있습니다.

문자열로 된 날짜를 파싱하여 Date 객체를 생성하고, Calendar의 시간대를 특정 시간대로 변경합니다. 마지막으로 Calendar의 요일 정보를 얻습니다.

  • calendar.get(Calendar.DAY_OF_WEEK) : 날짜의 요일 정보를 얻음, 요일 정보는 1(일요일)에서 7(토요일)까지의 숫자 범위로 되어있음
  • 문자열로 요일을 출력하고 싶다면, 1에서 7의 값이 매핑된 요일 리스트를 만들고, 숫자를 문자열로 변경할 수 있음
import java.util.Calendar
import java.text.SimpleDateFormat

fun main() {
    val dateStr = "2023-09-15"
    val dateFormat = SimpleDateFormat("yyyy-MM-dd")
    val date = dateFormat.parse(dateStr)

    val calendar = Calendar.getInstance()
    calendar.time = date

    val dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
    val days = arrayListOf("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
    println("요일: $dayOfWeek")
    println("요일(String): ${days[dayOfWeek - 1]}")
}

Output:

요일: 6
요일(String): Friday