[swift] SwiftDate를 사용하여 지정된 기간 동안의 특정 요일의 일자 가져오기

SwiftDate는 Swift에서 날짜 및 시간 관련 작업을 간편하게 처리할 수 있는 라이브러리입니다. 이번에는 SwiftDate를 사용하여 지정된 기간 동안의 특정 요일의 일자를 가져오는 방법에 대해 알아보겠습니다.

1. SwiftDate 설치

SwiftDate를 사용하기 위해 먼저 프로젝트에 SwiftDate 패키지를 설치해야 합니다. Podfile 파일에 다음과 같이 추가합니다:

pod 'SwiftDate'

그리고 터미널에서 pod install 명령을 실행하여 패키지를 설치합니다.

2. 코드 예시

다음은 SwiftDate를 사용하여 지정된 기간 동안의 특정 요일의 일자를 가져오는 코드의 예시입니다:

import SwiftDate

func findDatesOnWeekday(weekday: WeekDay, startDate: Date, endDate: Date) -> [Date] {
    var dates = [Date]()
    var currentDate = startDate
    
    while currentDate <= endDate {
        if currentDate.weekday == weekday {
            dates.append(currentDate)
        }
        
        currentDate = currentDate + 1.day
    }
    
    return dates
}

// 예시 사용법
let startDate = Date().startOfDay
let endDate = Date() + 1.year
let weekday = WeekDay.friday

let fridayDates = findDatesOnWeekday(weekday: weekday, startDate: startDate, endDate: endDate)

for date in fridayDates {
    print(date.toFormat("yyyy-MM-dd"))
}

위의 코드는 findDatesOnWeekday 함수를 통해 지정된 기간 동안 특정 요일의 일자를 찾습니다. 함수는 주어진 시작 날짜(startDate)와 종료 날짜(endDate) 사이에서 weekday에 해당하는 요일을 가진 일자들을 찾아 리스트로 반환합니다. 이후 이 일자들을 예시로 출력하는 부분까지 포함되어 있습니다.

3. 결과 예시

위의 예시 코드를 실행하면 현재 날짜 기준으로 한 해 동안의 금요일 일자들이 출력됩니다.

2022-01-07
2022-01-14
2022-01-21
...
2022-12-23
2022-12-30

4. 결론

SwiftDate를 사용하여 지정된 기간 동안 특정 요일의 일자를 가져올 수 있습니다. 이를 활용하면 일별 작업이나 원하는 요일의 일정을 쉽게 찾을 수 있으며, 시간 관련 작업을 간편하게 처리할 수 있는 장점이 있습니다.