프로그래밍/android

[kotlin] 특정 날짜가 속해있는 1주일간의 날짜 범위

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

특정 날짜가 속해있는 1주일간의 날짜 범위를 알아내기 위한 함수이다.

/**
 * 특정 날짜의 같은 한 주간의 날짜 범위
 * @param eventDate ex) 2020-10-10
 * */
fun week(eventDate: String) {
    val dateArray = eventDate.split("-").toTypedArray()

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

    // 일주일의 첫날을 일요일로 지정한다
    cal.firstDayOfWeek = Calendar.SUNDAY

    // 시작일과 특정날짜의 차이를 구한다
    val dayOfWeek = cal[Calendar.DAY_OF_WEEK] - cal.firstDayOfWeek

    // 해당 주차의 첫째날을 지정한다
    cal.add(Calendar.DAY_OF_MONTH, -dayOfWeek)

    val sf = SimpleDateFormat("yyyy-MM-dd")

    // 해당 주차의 첫째 날짜
    val startDt = sf.format(cal.time)

    // 해당 주차의 마지막 날짜 지정
    cal.add(Calendar.DAY_OF_MONTH, 6)

    // 해당 주차의 마지막 날짜
    val endDt = sf.format(cal.time)

    Log.d(TAG, "특정 날짜 = [$eventDate] >> 시작 날짜 = [$startDt], 종료 날짜 = [$endDt]")
}