Date
है Comparable
और Equatable
(स्विफ्ट 3) के रूप में
यह उत्तर @Ankit Thakur के उत्तर का पूरक है।
स्विफ्ट 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 में काम करता है