[swift] SwiftDate를 사용하여 지정된 기간 동안의 평일 수 계산하기

SwiftDate는 Swift에서 날짜와 시간을 쉽게 다룰 수 있도록 도와주는 라이브러리입니다. 이 라이브러리를 사용하여 특정 기간 동안의 평일 수를 계산하는 방법을 알아보겠습니다.

1. SwiftDate 라이브러리 설치하기

첫 번째로, SwiftDate 라이브러리를 프로젝트에 추가해야 합니다. Cocoapods를 사용한다면, Podfile에 다음과 같이 추가합니다:

pod 'SwiftDate'

그리고 터미널에서 pod install 명령을 실행하여 라이브러리를 설치합니다.

2. 코드 예제

다음은 SwiftDate를 사용하여 지정된 기간 동안의 평일 수를 계산하는 코드 예제입니다:

import SwiftDate

func calculateWeekdayCount(startDate: Date, endDate: Date) -> Int {
    var count = 0
    
    let calendar = Calendar.current
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"
    
    var currentDate = startDate
    while currentDate <= endDate {
        if let weekday = calendar.dateComponents([.weekday], from: currentDate).weekday,
           weekday != 1 && weekday != 7 {
            count += 1
        }
        
        currentDate = calendar.date(byAdding: .day, value: 1, to: currentDate)!
    }
    
    return count
}

// 예제 사용법
let startDate = DateInRegion(string: "2022-01-01", format: .custom("yyyy-MM-dd"))
let endDate = DateInRegion(string: "2022-01-31", format: .custom("yyyy-MM-dd"))
let weekdayCount = calculateWeekdayCount(startDate: startDate!.date, endDate: endDate!.date)

print("평일 수: \(weekdayCount)")

위 코드는 calculateWeekdayCount 함수를 정의하고, 주어진 날짜 범위 내의 평일 수를 계산합니다. 함수는 시작 날짜와 종료 날짜를 인자로 받으며, while 반복문을 사용하여 시작 날짜부터 종료 날짜까지 하루씩 증가하면서 각 날짜의 요일을 확인합니다. 주말인 경우 평일 수에 포함하지 않고, 평일인 경우에만 평일 수를 증가시킵니다.

3. 실행 결과

위 코드 예제를 실행하면 다음과 같은 결과가 출력됩니다:

평일 수: 21

이는 2022년 1월 1일부터 1월 31일까지의 기간 동안 평일이 21일이라는 의미입니다.

4. 참고 자료