Date
is Comparable
& Equatable
(Swift 3 기준)
이 답변은 @Ankit Thakur의 답변을 보완합니다.
Swift 3 이후 Date
구조체 (기본 NSDate
클래스 기반 )는 Comparable
및 Equatable
프로토콜을 채택합니다 .
Comparable
즉 필요 Date
연산자를 구현 : <
, <=
, >
, >=
.
Equatable
운영자 를 Date
구현 해야합니다 ==
.
Equatable
연산자 Date
의 기본 구현을 사용할 수 있습니다 !=
( Equatable
==
연산자 구현의 역임).
다음 샘플 코드는 이러한 비교 연산자를 실행하고 print
문과 어떤 비교가 참인지 확인 합니다.
비교 기능
import Foundation
func describeComparison(date1: Date, date2: Date) -> String {
var descriptionArray: [String] = []
if date1 < date2 {
descriptionArray.append("date1 < date2")
}
if date1 <= date2 {
descriptionArray.append("date1 <= date2")
}
if date1 > date2 {
descriptionArray.append("date1 > date2")
}
if date1 >= date2 {
descriptionArray.append("date1 >= date2")
}
if date1 == date2 {
descriptionArray.append("date1 == date2")
}
if date1 != date2 {
descriptionArray.append("date1 != date2")
}
return descriptionArray.joined(separator: ", ")
}
샘플 사용
let now = Date()
describeComparison(date1: now, date2: now.addingTimeInterval(1))
// date1 < date2, date1 <= date2, date1 != date2
describeComparison(date1: now, date2: now.addingTimeInterval(-1))
// date1 > date2, date1 >= date2, date1 != date2
describeComparison(date1: now, date2: now)
// date1 <= date2, date1 >= date2, date1 == date2
let d1 = Date() ; let d2 = Date() ; if d1 > d2 { }
내 Xcode 8 베타 6에서 작동합니다.