我是Swift的新手。 我有一个很大的(仅适合我)问题。 我有NSUserDefaults我需要在每天结束时删除。 我知道我需要比较日期,但我不知道该怎么做。
答案 0 :(得分:0)
给出两个日期dataA
和dateB
let calendar = NSCalendar.currentCalendar()
var componantsA = calendar.components(NSCalendarUnit.MonthCalendarUnit | NSCalendarUnit.YearCalendarUnit | NSCalendarUnit.DayCalendarUnit, fromDate:dateA)
var componantsB = calendar.components(NSCalendarUnit.MonthCalendarUnit | NSCalendarUnit.YearCalendarUnit | NSCalendarUnit.DayCalendarUnit, fromDate:dateB)
var sameDay:Bool = (componantsA.day == componantsB.day) && (componantsA.month == componantsB.month) && (componantsA.year == componantsB.year)
答案 1 :(得分:0)
你应该使用NSCalendar方法isDate(inSameDayAsDate :),所以我们可以创建一个NSDate扩展,使用该方法返回一个布尔值:
extension NSDate {
struct Calendar {
static let gregorian = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
}
func isInSameDayAs(date date: NSDate) -> Bool {
return Calendar.gregorian.isDate(self, inSameDayAsDate: date)
}
}
用法:
let date1 = NSDate()
let date2 = NSDate().dateByAddingTimeInterval(60)
if date1.isInSameDayAs(date: date2 ){
print("true") // "true\n"
} else {
print("false")
}