프로그래밍/android

[kotlin] 특정 날짜가 속해있는 달에서 '특정 날짜와 같은 요일'의 날짜 구하기

-샤리- 2020. 12. 14. 17:17

특정 날짜가 속해있는 달에서 '특정 날짜와 같은 요일'의 날짜를 구하기 위한 함수이다.

/**
 * 특정 날짜가 속해있는 달에서 특정 날짜와 같은 요일의 날짜 구하기
 * @param eventDate ex) 2020-10-10
 * */
fun day(eventDate: String){
    val dateArray = eventDate.split("-").toTypedArray()

    val cal = Calendar.getInstance()
    cal[dateArray[0].toInt(), dateArray[1].toInt() - 1] = dateArray[2].toInt()

    // 요일 확인(일요일:1, 월요일:2, ... ,토요일:7)
    var dayOfWeek = cal.get(Calendar.DAY_OF_WEEK)
    Log.d(TAG, "dayOfWeek = [$dayOfWeek]")

    var count = 1

    // 시작 1일로 지정
    cal[dateArray[0].toInt(), dateArray[1].toInt() - 1] = 1

    // 해당 월의 마지막 날짜 지정
    var lastDate = cal.getActualMaximum(Calendar.DAY_OF_MONTH)

    while (count <= lastDate) {
        var dow = cal.get(Calendar.DAY_OF_WEEK)
        if (dow == dayOfWeek) {
            var date = cal.get(Calendar.DATE)
            Log.d(TAG, "같은 요일 날짜 : $date")
        }
        cal[dateArray[0].toInt(), dateArray[1].toInt() - 1] = ++count
    }
}