[swift] SwiftDate를 사용하여 특정 날짜와 지정된 시간 사이의 거리 계산하기

Swift에는 날짜와 시간을 다루는 다양한 라이브러리가 있지만, SwiftDate는 그중에서도 많은 기능과 유연성을 제공하는 인기 있는 라이브러리입니다. 이번에는 SwiftDate를 사용하여 특정 날짜와 지정된 시간 사이의 거리를 계산하는 방법에 대해 알아보겠습니다.

SwiftDate 설치하기

SwiftDate는 CocoaPods를 통해 간단하게 설치할 수 있습니다. Podfile 파일에 다음과 같이 라이브러리를 추가하고 pod install 명령어를 실행하세요.

pod 'SwiftDate'

SwiftDate 사용하기

다음은 SwiftDate를 사용하여 특정 날짜와 현재 시간 사이의 거리를 계산하는 간단한 예제입니다.

import SwiftDate

func calculateDistanceFromNow(to date: Date) -> String {
    let distance = Date().distance(to: date, in: .second)
    
    if distance <= 0 {
        return "지난 시간입니다."
    } else {
        let timeComponents = (distance / 3600, (distance / 60) % 60, distance % 60)
        return String(format: "%02d시간 %02d분 %02d초 남았습니다.", arguments: timeComponents)
    }
}

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let targetDate = dateFormatter.date(from: "2021-12-31 23:59:59")!
let distanceString = calculateDistanceFromNow(to: targetDate)
print(distanceString)

위의 코드는 현재 시간과 특정 날짜(2021-12-31 23:59:59) 사이의 거리를 초 단위로 계산하여 반환합니다. 만약 거리가 0 이하일 경우 “지난 시간입니다.”라는 메시지를, 그 외에는 남은 시간을 시간 단위로 변환하여 “hh시간 mm분 ss초 남았습니다.” 형식으로 반환합니다.

결과 예시

위의 예제 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

34일 10시간 22분 15초 남았습니다.

마무리

SwiftDate는 날짜 및 시간 관련 기능을 편리하게 다룰 수 있는 강력한 라이브러리입니다. 이번 예제를 통해 특정 날짜와 지정된 시간 사이의 거리를 SwiftDate를 활용하여 쉽게 계산하는 방법을 알아보았습니다. SwiftDate의 다른 기능들도 함께 살펴보면, 날짜 및 시간 관련 작업을 보다 쉽고 효율적으로 처리할 수 있을 것입니다.