[swift] SwiftDate를 사용하여 주어진 날짜의 월의 첫 번째 요일의 날짜 가져오기

SwiftDate 라이브러리는 Swift에서 날짜 및 시간에 대한 다양한 작업을 수행하는 기능을 제공합니다. 이 라이브러리를 사용하여 주어진 날짜의 월의 첫 번째 요일의 날짜를 가져오는 방법을 알아보겠습니다.

먼저, SwiftDate를 프로젝트에 추가해야 합니다. 그러기 위해서는 Podfile에 다음과 같은 내용을 추가하고 pod install을 실행하십시오.

pod 'SwiftDate'

이제 아래의 코드를 사용하여 주어진 날짜의 월의 첫 번째 요일의 날짜를 가져올 수 있습니다.

import SwiftDate

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2022-03-15")

if let unwrappedDate = date {
    let firstWeekday = unwrappedDate.startOf(component: .month).weekday
    let offset = (firstWeekday - 1) * -1
    let firstWeekdayOfMonth = unwrappedDate + (offset).days
    
    let currentDate = firstWeekdayOfMonth.toFormat("yyyy-MM-dd")
    print(currentDate)
} else {
    print("Invalid date format")
}

위의 코드에서, 먼저 DateFormatter를 사용하여 주어진 날짜 문자열(“yyyy-MM-dd” 형식)을 변환하여 date에 할당합니다. 그런 다음 startOf(component:) 메소드를 사용하여 날짜를 해당 월의 첫 번째 날짜로 설정합니다. weekday 속성을 사용하여 해당 날짜의 요일을 가져옵니다. 이후에는 첫 번째 요일의 날짜를 계산하기 위해 offset 값을 계산하고, days를 사용하여 날짜를 이동시킵니다. 마지막으로, toFormat(_:) 메소드를 사용하여 날짜를 원하는 형식으로 변환하여 출력합니다.

실행 결과는 다음과 같이 나타납니다.

2022-03-01

SwiftDate를 사용하면 날짜 및 시간과 관련된 많은 작업을 할 수 있으며, 유연하고 간편한 API를 제공합니다. 자세한 내용은 SwiftDate GitHub 페이지를 참조하십시오.