Что вы ищете - это структура NSCalendar, которая поможет вам рассчитать разницу между двумя датами. Я предлагаю вам создать расширение, чтобы помочь вам с ним следующим образом:
extension NSDate {
func daysFrom(date:NSDate) -> Int {
return NSCalendar.currentCalendar().components(.CalendarUnitDay, fromDate: date, toDate: self, options: nil).day
}
func xDays(days: Int) -> NSDate {
return NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitDay, value: days, toDate: self, options: nil)!
}
func xWeeks(days: Int) -> NSDate {
return NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitWeekOfYear, value: days, toDate: self, options: nil)!
}
}
let yesterday = NSDate().xDays(-1) // "Jan 31, 2015, 17:41"
let lastWeek = NSDate().xWeeks(-1) // "Jan 25, 2015, 17:42"
NSDate().daysFrom(yesterday) // 1
NSDate().daysFrom(lastWeek) // 7
Если вам нужно вычислить его из строки можно также создать расширение для конвертирования строки в NSDate следующим образом:
extension String {
var asDate: NSDate {
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
return formatter.dateFromString(self)!
}
}
NSDate().daysFrom("2015-01-01".asDate) // 31
Опубликовать код, который вы пробовали до сих пор –
Чтобы преобразовать строку в пользователя NSDate NSDateFormatter – Arbitur