Я пытаюсь получить разницу между двумя датами, и она должна отображаться в днях.Разница между датами с NSDateComponents дает неправильный вывод
NSLog(@"%@", [NSDate date]);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/mm/yyyy"];
NSDate *formattedDate = [formatter dateFromString: [NSString stringWithFormat:@"31/05/2013"]];
NSDate *startDateForDays = [NSDate date];
NSDate *endDateForDays = formattedDate;
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlagsForDays = NSDayCalendarUnit;
NSDateComponents *componentsForDays = [gregorian components:unitFlagsForDays
fromDate:startDateForDays
toDate:endDateForDays options:0];
NSLog(@"%@", [NSString stringWithFormat:@"%i days until %@", [componentsForDays day], formattedDate]);
Результат выглядит следующим образом:
2013-05-29 20:21:51 +0000
118 days until 2013-01-30 23:05:00 +0000
Я понятия не имею, что в моем коде является неправильным, и я надеюсь, что вы могли бы мне помочь.
Возможно, что-то связано с форматированием минут вместо месяцев. –
Вау, большое спасибо :) – joelfischerr
Ошибка была, как указал Горячий Ликс в моей третьей строке кода. «dd/mm/yyyy» будет дней/минут/лет, что я хотел, это дни/месяцы/годы. – joelfischerr