Swift - 前一周的开始日期和结束日期

问题描述:

今天是3月6日星期五。如何发现,2月16日是开始日期,2月22日是前一周之前的一周的结束日期。
16为我的国家保加利亚在美国将是15和21我使用.currentCalendar()

Today is Friday 6 March. How to find that 16 Feb is the start day and 22 Feb is the end day of the week before previous week. 16 is for my country Bulgaria in USA will be 15 and 21 I use .currentCalendar()

这应该工作:

let cal = NSCalendar.currentCalendar()

let components = NSDateComponents()
components.weekOfYear -= 1

if let date = cal.dateByAddingComponents(components, toDate: NSDate(), options: NSCalendarOptions(0)) {
    var beginningOfWeek: NSDate?
    var weekDuration = NSTimeInterval()
    if cal.rangeOfUnit(.CalendarUnitWeekOfYear, startDate: &beginningOfWeek, interval: &weekDuration, forDate: date) {
        let endOfWeek = beginningOfWeek?.dateByAddingTimeInterval(weekDuration)
        print(beginningOfWeek) // Optional(2015-02-15 05:00:00 +0000)
        print(endOfWeek) // Optional(2015-02-22 05:00:00 +0000)
    }
}