2009-12-16 61 views

回答

4

如果您的日期位於NSDate對象中,則可以使用timeIntervalSinceDate方法將差異查找爲NSTimeInterval,它將以秒爲單位給出差異。

然後,您可以通過一個簡單的算法轉換秒到天,小時和分鐘(這是我的頭頂部,未測試):

minutes = seconds/60; 
seconds %= 60; 
hours = minutes/60; 
minutes %= 60; 
days = hours/24; 
hours %= 24; 
+0

Thanks Ferruccio this是我正在尋找的確切的東西 – sandy 2009-12-16 15:10:39

4
NSCalendar* gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
    unsigned int uintFlags = NSYearCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit; 
    NSDateComponents* differenceComponents = [gregorian components:uintFlags fromDate:firstDate toDate:secondDate options:0]; 

然後就檢查differenceComponents的性能。您可以在隨XCode提供的文檔中找到所有這些屬性

+0

+1「提供了Xcode的文檔」 - 它也可在蘋果的開發網站:http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Classes/ NSCalendar_Class/Reference/NSCalendar.html#// apple_ref/doc/uid/TP40001451-BBCEGJCC – Tim 2009-12-16 11:39:20

0

建立關費魯喬的回答,這樣的事情將讓你尋找到這個時間差爲一個連接字符串,你可以告訴你有多少天,小時和分鐘之日起比較(YOURNSDATE)至今

NSTimeInterval timeDifference = [[NSDate date] timeIntervalSinceDate:YOURNSDATE]; 
     NSInteger seconds = (NSInteger)timeDifference; 
     NSInteger minutes; 
     NSInteger hours; 
     NSInteger days; 

     minutes = seconds/60; 
     seconds %= 60; 
     hours = minutes/60; 
     minutes %= 60; 
     days = hours/24; 
     hours %= 24; 

     NSString* daysString = [NSString stringWithFormat:@"%i days ", days]; 
     if(days == 0){ 
      daysString = @""; 
     }else if(days == 1){ 
      daysString = [NSString stringWithFormat:@"%i day ", days]; 
     } 
     NSString* hoursString = [NSString stringWithFormat:@"%i hrs ", hours]; 
     if(hours == 0){ 
      hoursString = @""; 
     }else if(hours == 1){ 
      hoursString = [NSString stringWithFormat:@"%i hr ", hours]; 
     } 
     NSString* minutesString = [NSString stringWithFormat:@"%i min", minutes]; 
     if(minutes == 0){ 
      minutesString = @""; 
     } 

     NSString *AllDatesString = [NSString stringWithFormat:@"%@%@%@", daysString, hoursString, minutesString]; 
相關問題