[swift] SwiftDate를 사용하여 특정 날짜의 이전 시간에 대한 최소값 계산하기

특정 날짜와 시간에 대해 이전 시간에 대한 최소값을 계산하는 것은 프로그래밍에서 자주 사용되는 작업 중 하나입니다.

SwiftDate는 Swift에서 날짜 및 시간을 다루기 위한 강력한 라이브러리입니다. 이를 사용하여 특정 날짜의 이전 시간에 대한 최소값을 계산할 수 있습니다.

아래는 SwiftDate를 사용하여 이 작업을 수행하는 예제 코드입니다.

import SwiftDate

func minimumTimeBefore(date: Date) -> Date {
    let currentDate = Date().dateAtStartOf(.day)
    let targetDate = date.dateAtStartOf(.day)
    
    if currentDate == targetDate {
        return Date()
    } else if currentDate < targetDate {
        return targetDate
    } else {
        return (currentDate - 1.days).dateAtStartOf(.day)
    }
}

// 사용 예시
let targetDate = Date() + 5.hours // 현재 시간보다 5시간 뒤의 날짜
let minimumTime = minimumTimeBefore(date: targetDate)

print(minimumTime)

위의 코드는 minimumTimeBefore(date:) 함수를 정의하고, 주어진 date 파라미터를 기준으로 이전 시간에 대한 최소값을 계산합니다.

이 함수에서는 현재 시간과 주어진 날짜를 각각 날짜의 시작으로 변환한 뒤 비교합니다. 현재 날짜인 경우 현재 시간을 반환하고, 이전 날짜인 경우 이전 날짜의 시작 시간을 반환합니다.

아래는 이 예제에서 실행한 결과입니다.

2021-11-15 00:00:00 +0000

위의 코드를 실행하면 현재 시간을 기준으로 5시간 뒤의 날짜의 이전 시간에 대한 최소값이 계산되어 출력됩니다.

SwiftDate는 다양한 기능과 옵션을 제공하여 날짜 및 시간을 다룰 때 유용한 도구입니다. 문서와 예제 코드를 참조하여 더 많은 기능을 알아보시기 바랍니다.

참고 자료