我是一个新手,所以对我来说很慢。
我正在使用swift创建一个应用程序,并且我有一个变量dateCreated,这是一个日期格式为“yyyy-MM-dd”的字符串。
我正在尝试创建另一个变量currentDate作为当前日期,并查找它们之间作为Int的天数。
有人可以帮我找出最好的方法吗?我尝试过使用我在本网站上发现的类似问题的方法,但似乎没有任何工作。
答案 0 :(得分:0)
您正在寻找的是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
如果您需要从String计算它,您还可以创建一个扩展名,将您的字符串转换为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