我怎么能找到下周末的斯威夫特
我有一个应用程序,我想在周六或周日显示一些数据。 实际上我有一个分段控制,如果我按下我的一个选项(这将是周末)我想检查如果它是周六或周日,但只有第一个周末。
这就是我为分段控制中的第一个选项所做的事情,以获取当前日期
dateevent是我用来检查currentDate currentDate是否被声明为currentDate的变量
if dateevent.earlierDate(self.currentDate).isEqualToDate(self.currentDate){ if NSCalendar.currentCalendar().isDate(dateevent, equalToDate: self.currentDate, toUnitGranularity: .Day){ //Do something } }
首先找到添加到NSDateComponents
weekday
属性的天数,然后您可以使用dateByAddingComponents(_:toDate:options:)
。
let today = NSDate() let calendar = NSCalendar.currentCalendar() let todayWeekday = calendar.component(.Weekday, fromDate: today) let addWeekdays = 7 - todayWeekday // 7: Saturday number var components = NSDateComponents() components.weekday = addWeekdays let nextSaturday = calendar.dateByAddingComponents(components, toDate: today, options: .MatchFirst)
来自Apple文档 :
如果日期确实在一个周末内,您可以使用
rangeOfWeekendStartDate:interval:containingDate:
方法来确定该周末期间的开始日期。 否则,您可以使用nextWeekendStartDate:interval:options:afterDate:
方法来确定下一个或上一个周末的开始日期。
获得星期几的延期
func dayOfTheWeek() -> String? { let dateFormatter = NSDateFormatter() dateFormatter.locale = NSLocale(localeIdentifier: "en_US") dateFormatter.dateFormat = "EEEE" return dateFormatter.stringFromDate(self) }
然后你可以计算周末需要多少天,并将其添加到NSDate
NSDate().dateByAddingTimeInterval(60 * 60 * 24 * daysFromTodayToWeekend)