[Android, Kotlin] 특정 날짜의 요일 출력

목적

‘2023-04-15’를 입력받아서 이에 해당하는 요일인 ‘토’를 반환한다.

설명

// 요일 호출
calendar.get(Calendar.DAY_OF_WEEK)

Calendar 클래스를 이용한다. Calendar의 set함수를 이용하여 2023년4월15일을 세팅한 Calendar의 객체를 생성하고 get(Calendar.DAY_OF_WEEK)으로 해당 객체의 요일을 호출한다.

코드

import java.util.Calendar

// 2023-04-14에서 2023을 추출
private fun GetYear(today: String): String{
    return today.substring(0 until 4)
}

// 2023-04-14에서 04를 추출
private fun GetMonth(today: String): String{
    return today.substring(4 until 6)
}

// 2023-04-14에서 14를 추출
private fun GetDay(today: String): String{
    return today.substring(6)
}

// 2023년 4월 14일을 세팅한 calendar객체 생성
private fun GetCalendar(year: String, month: String, day: String): Calendar{
    val calendar = Calendar.getInstance()
    calendar.set(Calendar.YEAR, year.toInt())
    calendar.set(Calendar.MONTH, month.toInt()-1)
    calendar.set(Calendar.DAY_OF_MONTH, day.toInt())
    return calendar
}

private fun GetCustomCalendar(today: String): Calendar {
    val year = GetYear(today)
    val month = GetMonth(today)
    val day = GetDay(today)
    val carlendar = GetCalendar(year, month, day)
    return carlendar
}

// date ex) 2023-04-14
fun GetDayOfWeek(date: String): String{
    val date = date.replace("-","") // 2023-04-14를 20230414로 변환
    val calendar = GetCustomCalendar(date)
    var dayOfWeekString: String? = null
    val dayOfWeekInt: Int = calendar.get(Calendar.DAY_OF_WEEK)

    when(dayOfWeekInt){
        1 -> dayOfWeekString = "일"
        2 -> dayOfWeekString = "월"
        3 -> dayOfWeekString = "화"
        4 -> dayOfWeekString = "수"
        5 -> dayOfWeekString = "목"
        6 -> dayOfWeekString = "금"
        7 -> dayOfWeekString = "토"
    }
    return dayOfWeekString!!
}

fun main() {
    print(GetDayOfWeek("2023-04-14"))
}

Leave a Comment