Я пытаюсь получить разницу в днях между сегодняшним днем [NSDate date] и днем, выбранным пользователем из UIDatePicker, d, который будет возвращен как целое число. .
Вот что я использую, чтобы понять разницу:
NSDate *startDate = d;
NSDate *endDate = [NSDate date];
NSLog(@"startDate: %@",startDate);
NSLog(@"endDate: %@",endDate);
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
NSDateComponents *components = [gregorian components:NSDayCalendarUnit
fromDate:endDate
toDate:startDate
options:0];
NSInteger days = [components day];
NSLog(@"Days: %i",days);
И startDate, и endDate возвращаются правильно, но проблема, которую я получаю, заключается в том, что разница в днях, которую я получаю, неверна. Например, когда я выбираю сегодняшнюю дату, разница равна 0, когда я выбираю завтра, разница по-прежнему равна 0, а когда я выбираю следующий день, разница составляет всего 1, а должна быть 2.
Есть ли у кого-нибудь идеи о том, что я могу сделать, чтобы исправить это? Это сводит меня с ума, и я не знаю, что с этим делать.