【发布时间】:2015-08-26 15:49:33
【问题描述】:
我希望扩展 NSDate 类,以便能够引用我们目前作为 NSDate 所在的每周的星期二。
我知道这可以通过 NSDateComponents 来完成。到目前为止,我有以下内容:
extension NSDate {
var tuesday: NSDate {
let calendar = NSCalendar.currentCalendar()
let todaysDate = NSDate()
let weekdayComponents = calendar.components(.CalendarUnitWeekday | .CalendarUnitWeekdayOrdinal, fromDate: todaysDate)
weekdayComponents.weekday = 3
let returnTuesday = calendar.dateByAddingComponents(weekdayComponents, toDate: todaysDate, options: nil)
return returnTuesday!
}}
我相信 CalendarUnitWeekday 在基于索引的系统上工作(即星期日 = 1,星期六 = 7),这就是为什么我将星期二所需的工作日设置为 3。
但是,当初始化一个 NSDate 对象并访问这个扩展的“星期二”属性时,我会提前一个月收到一个日期。
(今天的日期 - “2015 年 8 月 26 日,下午 4:42”) (星期二日期 - “2015 年 9 月 26 日,下午 4:42”)
是什么导致了这个月的提前?有没有办法通过扩展 NSDate 类来返回我们所在的每周的特定日期?
谢谢
【问题讨论】:
标签: ios swift nsdate nscalendar nsdatecomponents