Разница между двумя NSDates

Я беру два NSDates, используя выбор времени. Теперь я хочу подсчитать количество дней между этими двумя NSDates. Как я могу найти разницу между двумя NSDates.

пожалуйста, дайте мне некоторое решение.

Спасибо большое.

Ответы

Ответ 1

Ссылка NSDate - отличный маленький документ: http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html

- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate

- это то, что вы ищете, если хотите разницу во времени.

В течение нескольких дней (как не каждый день имеет такое же количество минут, часов) вы хотите увидеть ответ Мартинса ниже и использовать NSDateComponents с [NSCalendar currentCalendar]

Ответ 2

Вот немного драгоценного камня для вас - с более чем несколькими днями:

// Assuming you have fistDate and secondDate

unsigned int unitFlags = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitDay | NSCalendarUnitMonth;

NSDateComponents *conversionInfo = [currCalendar components:unitFlags fromDate:fistDate   toDate:secondDate  options:0];

int months = [conversionInfo month];
int days = [conversionInfo day];
int hours = [conversionInfo hour];
int minutes = [conversionInfo minute];

Это очень полезно - особенно при форматировании строки, например:

[NSString stringWithFormat:@"%d months , %d days, %d hours, %d min", months, days, hours, minutes];

Счастливое кодирование:)

Ответ 3

Здесь реализация Swift (я все время использую это при отладке таких вещей, как сетевые запросы и разбор JSON):

let date1 = NSDate()

// do some long running task

let date2 = NSDate()
print(date2.timeIntervalSinceDate(date1))

// you can also do this in one line, of course:
print(NSDate().timeIntervalSinceDate(date1))