我怎么能找到下周末的斯威夫特

我有一个应用程序,我想在周六或周日显示一些数据。 实际上我有一个分段控制,如果我按下我的一个选项(这将是周末)我想检查如果它是周六或周日,但只有第一个周末。

这就是我为分段控制中的第一个选项所做的事情,以获取当前日期

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)