Сравните два NSDates - PullRequest
       20

Сравните два NSDates

7 голосов
/ 20 июня 2010

Как я могу сравнить две NSDates и вернуть количество времени между ними.

Например:

2010-06-20 14:29:41 -0400
2010-06-20 14:53:29 -0400

должно возвращать что-то вроде: 23 или 24 (минут), округляя секунды, потому что секунды мне действительно не нужны.

Ответы [ 2 ]

11 голосов
/ 20 июня 2010

попробуйте что-то вроде:

int intervall = (int) [date1 timeIntervalSinceDate: date2] / 60;
2 голосов
/ 17 июля 2012

Вот полный фрагмент для сравнения двух NSDate, которые вы можете найти более полезными на основе вашего запроса.

NSCalendar *myCal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSString *str =@"12:15, 01 15 2012 AM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm, dd MM yy a"];

NSDate *refDate = [formatter dateFromString:str];
NSDate *today = [NSDate date];



NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit;
NSDateComponents *difference = [myCal components:unitFlags fromDate:refDate     toDate:today options:0];
NSLog(@"%@",difference);

------------------------------ то, что вы получите, ------------ -----------------------------

Календарный год: 0 Месяц: 0 День: 0 Час: 1 Минута: 19

...