स्विफ्ट 5 के साथ, आप नीचे दो समाधानों में से एक का उपयोग कर सकते हैं ताकि यह जांचा जा सके कि कोई तिथि दो अन्य तिथियों के बीच है या नहीं।
# 1। का उपयोग करते हुए DateInterval
की contains(_:)
विधि
DateInterval
नामक एक विधि है contains(_:)
। contains(_:)
निम्नलिखित घोषणा है:
func contains(_ date: Date) -> Bool
इंगित करता है कि क्या इस अंतराल में दी गई तारीख शामिल है।
निम्न खेल का मैदान कोड दिखाता है कि contains(_:)
दो अन्य तिथियों के बीच एक तिथि होने की जाँच करने के लिए कैसे उपयोग किया जाए:
import Foundation
let calendar = Calendar.current
let startDate = calendar.date(from: DateComponents(year: 2010, month: 11, day: 22))!
let endDate = calendar.date(from: DateComponents(year: 2015, month: 5, day: 1))!
let myDate = calendar.date(from: DateComponents(year: 2012, month: 8, day: 15))!
let dateInterval = DateInterval(start: startDate, end: endDate)
let result = dateInterval.contains(myDate)
print(result) // prints: true
# 2। का उपयोग करते हुए ClosedRange
की contains(_:)
विधि
ClosedRange
नामक एक विधि है contains(_:)
। contains(_:)
निम्नलिखित घोषणा है:
func contains(_ element: Bound) -> Bool
एक बूलियन मान लौटाता है जो दर्शाता है कि दिया गया तत्व सीमा के भीतर निहित है या नहीं।
निम्न खेल का मैदान कोड दिखाता है कि contains(_:)
दो अन्य तिथियों के बीच एक तिथि होने की जाँच करने के लिए कैसे उपयोग किया जाए:
import Foundation
let calendar = Calendar.current
let startDate = calendar.date(from: DateComponents(year: 2010, month: 11, day: 22))!
let endDate = calendar.date(from: DateComponents(year: 2015, month: 5, day: 1))!
let myDate = calendar.date(from: DateComponents(year: 2012, month: 8, day: 15))!
let range = startDate ... endDate
let result = range.contains(myDate)
//let result = range ~= myDate // also works
print(result) // prints: true