NSDate вычитание неприятностей - PullRequest
0 голосов
/ 28 декабря 2011

поэтому в моем приложении я хочу вычесть две даты. Первая дата является установленной датой, а вторая - текущей. Итак, я попробовал этот код:

    NSString *setDateString = [NSString stringWithFormat:@"12:30"];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSDate *setDate = [dateFormatter dateFromString:setDateString];

    NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:setDate];

Но он считает интервал с 1970 года. Но мне нужно с текущего дня. Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 28 декабря 2011

Полагаю, вы хотите разницу между сегодняшним днем ​​и 1230 часами сегодняшнего дня.Это может быть сделано

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components =[gregorian components:(NSDayCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit)  fromDate:today];
[components setHour:12];
[components setMinute:30];
[components setSecond:0];
NSDate *setDate=[gregorian dateFromComponents:components];
NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:setDate];
[gregorian release];

Причина, по которой он не работает для вас, заключается в том, что вы неправильно указали формат.Кроме того, вы можете описать это правильно в setDateString, указав все компоненты, а не только часы и минуты.

...