[swift] SwiftDate를 사용하여 특정 월의 첫 번째 요일 가져오기

SwiftDate는 Swift에서 날짜와 시간을 다루기 위한 강력한 라이브러리입니다. 여기서는 SwiftDate를 사용하여 특정 월의 첫 번째 요일을 가져오는 방법에 대해 알아보겠습니다.

먼저, SwiftDate를 프로젝트에 추가해야합니다. Xcode 프로젝트에서 File -> Swift Packages -> Add Package Dependency를 선택하고, https://github.com/malcommac/SwiftDate.git를 입력하여 SwiftDate를 추가합니다.

import SwiftDate

func getFirstWeekdayOfMonth(year: Int, month: Int) -> Int? {
    let calendar = Calendar.current
    var components = DateComponents()
    components.year = year
    components.month = month
    components.day = 1

    if let date = calendar.date(from: components) {
        let firstWeekday = date.startOf(component: .month).weekday
        return firstWeekday
    }
    return nil
}

// 사용 예시
let year = 2022
let month = 3
if let firstWeekday = getFirstWeekdayOfMonth(year: year, month: month) {
    print("The first weekday of \(month)/\(year) is \(firstWeekday)")
} else {
    print("Invalid date!")
}

위의 코드는 getFirstWeekdayOfMonth 함수를 정의하고, 해당 함수 내에서 SwiftDate와 Calendar를 사용하여 특정 월의 첫 번째 요일을 가져오도록 작성되었습니다.

주어진 년도와 월을 DateComponents를 이용하여 날짜 객체로 변환한 후, 해당 날짜의 월의 시작일(startOf(component: .month))을 가져와서 요일(weekday)을 얻습니다.

결과적으로, 위의 예제는 2022년 3월의 첫 번째 요일인 2(화요일)을 출력합니다.