यदि आप iOS 10+ या MacOS 10.12+ का उपयोग कर रहे हैं, तो आप Calendar
इसे ठीक से करने के लिए इन दो विधियों का उपयोग कर सकते हैं ।
func date(byAdding component: Calendar.Component, value: Int, to date: Date, wrappingComponents: Bool = default) -> Date?
( डॉक्स )
func dateInterval(of component: Calendar.Component, for date: Date) -> DateInterval?
( डॉक्स )
मेरे समय क्षेत्र में खेल के मैदान के उत्पादन के साथ, स्विफ्ट 3 में इन विधियों का उपयोग कैसे करें, इसका एक उदाहरण यहां दिया गया है।
let calendar = Calendar.current
let now = Date()
// => "Apr 28, 2017, 3:33 PM"
let yesterday = calendar.date(byAdding: .day, value: -1, to: now)
// => "Apr 29, 2017, 3:33 PM"
let yesterdayStartOfDay = calendar.startOfDay(for: yesterday!)
// => ""Apr 29, 2017, 12:00 AM"
let thisWeekInterval = calendar.dateInterval(of: .weekOfYear, for: now)
// => 2017-04-23 04:00:00 +0000 to 2017-04-30 04:00:00 +0000
let thisMonthInterval = calendar.dateInterval(of: .month, for: now)
// => 2017-04-01 04:00:00 +0000 to 2017-05-01 04:00:00 +0000
let aDateInLastWeek = calendar.date(byAdding: .weekOfYear, value: -1, to: now)
let lastWeekInterval = calendar.dateInterval(of: .weekOfYear, for: aDateInLastWeek!)
// => 2017-04-16 04:00:00 +0000 to 2017-04-23 04:00:00 +0000
let aDateInLastMonth = calendar.date(byAdding: .month, value: -1, to: now)
let lastMonthInterval = calendar.dateInterval(of: .weekOfYear, for: aDateInLastMonth!)
// => 2017-03-26 04:00:00 +0000 to 2017-04-02 04:00:00 +0000
बोनस: आप DateInterval
परीक्षण के लिए उपयोग कर सकते हैं कि कोई तिथि उस सीमा में आती है या नहीं। ऊपर से जारी:
thisWeekInterval!.contains(now)
lastMonthInterval!.contains(now)