[swift] SwiftDate를 사용하여 지정된 기간 동안의 특정 요일의 마지막 날짜 가져오기
SwiftDate는 Swift 언어에서 사용할 수 있는 강력한 날짜 및 시간 처리 라이브러리입니다. 이 라이브러리를 사용하면 날짜 및 시간의 다양한 연산을 쉽게 수행할 수 있습니다. 이번 포스트에서는 SwiftDate를 사용하여 지정된 기간 동안의 특정 요일의 마지막 날짜를 가져오는 방법을 알아보겠습니다.
SwiftDate 설치
SwiftDate를 사용하기 위해 먼저 Swift 패키지 매니저를 사용하여 프로젝트에 SwiftDate를 추가해야 합니다. 프로젝트의 Package.swift
파일에 다음 종속 항목을 추가하십시오.
dependencies: [
.package(url: "https://github.com/malcommac/SwiftDate.git", from: "6.0.0")
]
그런 다음 터미널에서 다음 명령을 실행하여 종속 항목을 설치합니다.
$ swift package update
코드 예제
다음은 SwiftDate를 사용하여 지정된 기간 동안의 특정 요일의 마지막 날짜를 가져오는 예제입니다.
import SwiftDate
func getLastDayOfWeekday(weekday: Weekday, startDate: Date, endDate: Date) -> Date {
let calendar = Calendar.current
var currentDate = startDate
while currentDate <= endDate {
if calendar.component(.weekday, from: currentDate) == weekday.rawValue {
var nextDate = currentDate + 7.days
while calendar.component(.weekday, from: nextDate) == weekday.rawValue {
currentDate = nextDate
nextDate = currentDate + 7.days
}
return currentDate
}
currentDate = currentDate + 1.day
}
fatalError("Invalid input")
}
// 사용 예
let startDate = Date() // 시작 날짜
let endDate = Date() + 1.year // 종료 날짜 (1년 후)
let lastFriday = getLastDayOfWeekday(weekday: .friday, startDate: startDate, endDate: endDate)
print(lastFriday)
위의 코드는 특정 요일을 나타내는 Weekday
열거형을 받아서 지정된 기간 동안의 마지막 날짜를 반환하는 getLastDayOfWeekday
함수를 정의합니다. 함수는 시작 날짜와 종료 날짜를 입력으로 받습니다.
사용 예에서는 현재 날짜를 시작 날짜로 하고, 1년 후를 종료 날짜로 설정한 후 금요일의 마지막 날짜를 구합니다. print
함수를 사용하여 결과를 출력합니다.
결론
SwiftDate를 사용하여 지정된 기간 동안 특정 요일의 마지막 날짜를 가져오는 방법을 살펴보았습니다. SwiftDate는 날짜 및 시간 처리 작업을 간편하게 해주는 강력한 라이브러리입니다. 필요한 경우 추가적인 참고 자료를 확인하시기 바랍니다.