Dateis 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에서 작동합니다.