2011-12-22 17 views
0

私は作成された日付についていくつかのレビューをしています。そのため、その日付を日数にしてから、月の後にします。これは私が日付を取得するコードされていますNSDateから現在までの日数を取得するにはどうすればよいですか?

NSDateFormatter * inputFormatter = [[NSDateFormatter alloc] init]; 
[inputFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss" ]; 

NSString * inputString = entry.createdAt; 
NSDate * inputDate = [inputFormatter dateFromString:inputString]; 
double timeInterval = [inputDate timeIntervalSinceNow]; 
dateLabel.text = [NSString stringWithFormat:@"%d",timeInterval]; 

答えて

1

日は簡単です:

int days = timeInterval/(60.0 * 60.0 * 24.0); //< i.e. divide by seconds in a day 

ヶ月間は困難です。あなたはそれが本当に正確であることを望みますか?あるいは、月に30日かかると仮定しますか?もしそうなら、それはちょうどです:

int months = timeInterval/(60.0 * 60.0 * 24.0 * 30.0); //< i.e. divide by seconds in a month 

すべて一緒に、あなたができることをラップするには:

if (timeInterval < (60.0 * 60.0 * 24.0 * 30.0)) { 
    dateLabel.text = [NSString stringWithFormat:@"%i days", (int)(timeInterval/(60.0 * 60.0 * 24.0))]; 
} else { 
    dateLabel.text = [NSString stringWithFormat:@"%i months", (int)(timeInterval/(60.0 * 60.0 * 24.0 * 30.0))]; 
} 

は何をしたいということですか?

+0

はいそれは私が欲しいものです。 –

0

NSCalendar components:fromDate:toDate:optionsメソッドを見てください。

NSDate *date = [[[NSDate alloc] init] autorelease]; 
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 

    NSDateComponents *components = [calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:date toDate:inputDate options:0]; 
    int years = [components year]; 
    int months = [components month]; 
    int days = [components day]; 
    NSLog(@"Start date: %@ End Date: %@", date, inputDate); 
    NSLog(@"year: %i months: %i days: %i", years, months, days); 
    [date release]; 
    [calendar release]; 
関連する問題