Существует полное руководство по программированию даты и времени.Вот соответствующий раздел , который дает вам подсказку о том, что делать.
Вот откуда пример кода из другого вопроса.
Попробуйте написать что-нибудь на основена это, а затем вернитесь, если у вас есть конкретные вопросы.
Изменить
Хорошо.Вот как я написал бы код в его самой простой форме.
Сначала я бы расширил NSDate.
Заголовочный файл:
// NSDate+ADNExtensions.h
#import <Cocoa/Cocoa.h>
@interface NSDate (ADNExtensions)
- (NSInteger)numberOfDaysUntil:(NSDate *)aDate;
@end
Файл реализации:
// NSDate+ADNExtensions.m
#import "NSDate+ADNExtensions.h"
@implementation NSDate (ADNExtensions)
- (NSInteger)numberOfDaysUntil:(NSDate *)aDate {
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit fromDate:self toDate:aDate options:0];
return [components day];
}
@end
Это очень грубый код.Нет проверки или подтверждения ошибки, что вторая дата более поздняя, чем первая.
А затем я использовал бы ее следующим образом (работает в 64-битной среде с мусором):
NSDate *startDate = [NSDate dateWithString:@"2010-11-01 00:00:00 +0000"];
NSDate *endDate = [NSDate dateWithString:@"2010-11-02 00:00:00 +0000"];
NSInteger difference = [startDate numberOfDaysUntil:endDate];
NSLog(@"Diff = %ld", difference);
Это такой позор, потому что вы узнали бы намного больше, разместив свой код и неверные результаты и получив более конкретную помощь.Но если вы просто хотите быть программистом, работающим по принципу «вырезать и вставить»;возьми этот код и удачи тебе.