[swift] SwiftDate를 사용하여 주어진 날짜의 다음 특정 요일의 날짜 가져오기

많은 앱이 특정 요일에 관련된 기능을 제공하고 있습니다. 예를 들어, 매주 화요일마다 이벤트를 알림으로 받거나, 매주 토요일마다 휴식일을 표시하는 등의 기능이 있을 수 있습니다. 이러한 요구사항을 충족시키기 위해서는 주어진 날짜에서 다음 특정 요일을 찾아와야 합니다. 이를 위해서 SwiftDate 라이브러리를 사용할 수 있습니다.

SwiftDate는 Swift 언어로 작성된 날짜 및 시간 처리를 위한 강력한 라이브러리입니다. 다양한 날짜 및 시간 조작 기능을 제공하여 주어진 날짜의 다음 특정 요일을 쉽게 찾을 수 있습니다.

SwiftDate 설치

SwiftDate를 사용하기 위해서는 먼저 해당 라이브러리를 프로젝트에 추가해야 합니다. 아래와 같이 Podfile에 SwiftDate를 추가하고, 터미널에서 pod install 명령을 실행하여 설치합니다.

pod 'SwiftDate'

주어진 날짜에서 다음 특정 요일을 찾기

SwiftDate를 사용하여 주어진 날짜에서 다음 특정 요일을 찾기 위해서는 다음과 같이 코드를 작성할 수 있습니다.

import SwiftDate

func getNextDayOfWeek(_ date: Date, _ dayOfWeek: DayOfWeek) -> Date? {
    let nextDay = date.next(.init(dayOfWeek), considerToday: true)
    return nextDay.date
}

let givenDate = Date()
let nextSaturday = getNextDayOfWeek(givenDate, .saturday)

if let nextSaturday = nextSaturday {
    print("다음 토요일은 \(nextSaturday.year)-\(nextSaturday.month)-\(nextSaturday.day) 입니다.")
} else {
    print("해당 날짜에 다음 토요일이 없습니다.")
}

위 코드에서는 getNextDayOfWeek 함수를 정의하여 주어진 날짜(date)를 기준으로 다음 특정 요일(dayOfWeek)을 찾는 로직을 작성했습니다. 이 함수는 주어진 날짜에서 next 메서드를 사용하여 다음 특정 요일을 찾고, 해당 결과를 date 형식으로 반환합니다.

마지막으로, 주어진 날짜의 다음 토요일을 출력하는 예시 코드를 작성했습니다. givenDate 변수에 현재 날짜를 할당하고, getNextDayOfWeek 함수를 사용하여 다음 토요일을 찾습니다. 그리고 해당 결과를 출력합니다.

참고 자료