[Kotlin] 특정 날짜의 요일 구하기
April 06, 2024
코틀린에서 어떤 날짜가 무슨 요일인지 확인하는 방법에 대해서 알아보겠습니다.
1. LocalDate를 이용한 방법
문자열로 된 날짜가 있을 때 DateTimeFormatter
와 LocalDate
를 이용하여 특정 날짜를 파싱할 수 있습니다.
어떤 날짜에 대한 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