본문 바로가기
Kotlin

[Kotlin] 요일 구하는 방법

by Echung 2023. 12. 17.

이번에는 안드로이드 날씨앱을 구현하는 중에 요일이 필요하여 요일을 구하는 방법을 알아보았습니다.

1. 현재 날짜의 요일 구하는 방법

val currentDate = LocalDate.now()
// 현재 날짜의 요일 가져오기
val dayOfWeek: DayOfWeek = currentDate.dayOfWeek

println("현재 요일: $dayOfWeek") // 현재 요일: SATURDAY

1번 방법은 LocalDate를 가져와서 DayOfWeek()에서 제공하는 dayOfWeek을 이용하는 방법입니다. 

 

2 - 1. 입력 데이터를 통해서 요일을 구하는 방법

val inputString = "20231216"
// SimpleDateFormat을 사용하여 Date 객체로 변환
val sdf = SimpleDateFormat("yyyyMMdd", Locale.getDefault())
val date: Date = sdf.parse(inputString)
// Date 객체를 LocalDate로 변환
val localDate: LocalDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()
// LocalDate에서 요일 가져오기
val dayOfWeek: DayOfWeek = localDate.dayOfWeek
// 요일 출력
println("$inputString 의 요일: $dayOfWeek") // 20231216 의 요일: SATURDAY

2 - 1번 방법은 주어진 입력을 LocalDate로 변환하여 1번의 방법과 같이 DayOfWeek을 사용해서 얻는 방법입니다. 

 

2 - 2. 입력 데이터를 통해서 요일을 구하는 방법

val date = "20231216"
// 입력 문자열을 파싱하기 위한 SimpleDateFormat 객체를 생성합니다. 이 객체는 "yyyyMMdd" 형식의 날짜를 파싱할 수 있도록 설정
val input = SimpleDateFormat("yyyyMMdd")
// 출력 포맷을 지정하는 SimpleDateFormat 객체를 생성합니다. 여기서 "E"는 요일을 나타내는 포맷
val output = SimpleDateFormat("E")

println("$date 의 요일 : ${output.format(input.parse(date))}") //20231216 의 요일: 토

2 - 2번 방법은 SimpleDateFormat에서 제공해 주는 "E"를 사용해서 요일을 받아오는 방법입니다.

 

3. Calendar을 사용해서 요일을 구하는 방법

    val currentDate1 = Date()

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

    println("현재 요일: ${calendar[Calendar.DAY_OF_WEEK]}") // 현재 요일: 1
    // 1 : 일요일, 2: 월요일 ..., 7: 토요일

Calendar을 사용해서 결과를 얻어오는 방법입니다. 이 방법은 숫자로 리턴해줍니다.

 

이렇게 요일을 구하는 방법은 많이 있습니다. 여기서 자기가 편한대로 조금씩 수정하면서 사용하면 될 것 같습니다. 

반응형