То что нужно! спасибо!
NSDate разница времени
А подскажите, как сравнивать даты, не время? Сейчас у меня реализовано так:
// в массиве даты в формате NSDate(в секундах)
for item in dateArray{
let birthday = item.birthday
// Приходится прибавлять 2 дня, так как не учитывается сам день рождения
let ageInSeconds = NSDate().timeIntervalSince(birthday as! Date) + 172800
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.year, .month, .day]
formatter.unitsStyle = .abbreviated
cell.ageLabel.text = formatter.string(from: TimeInterval(ageInSeconds))
}
Считает как-то не правильно
Может я что-то не то делаю?
Если Ваш вопрос как сравнивать даты, то ответ очень прост:
let date = Date()
let date1 = Date(timeIntervalSinceNow: 10)
if date > date1 {
print("date is bigger date1")
} else {
print("date1 is bigger date")
}
В данном случае date будет всегда меньше date1. В Вашем случае все будет считаться точно так же.
Видимо я не точно изъяснился. Как сравнить я понял, вопрос в том как отнять текущую дату от заданной, чтобы получить разницу=)
Вы же можете все в секундах отобразить. У Вас в консоли плейграунда уже отображается разница между датами в секундах.
так и делаю
print(formatter.string(from: ageInSeconds)!)
но если посчитать, то разница в 1 день, так как к примеру от 18.11.2015 до сегодняшнего дня прошло 1 год 4 месяца и 24 дня, а если смотреть расчет, то 23 дня, мне приходится делать так
print(formatter.string(from: ageInSeconds + 86400)!)
чтобы было точно. Думал что не правильно делаю, а получается что это такая фича что-ли, не учитывать день с которого начинается отчет?