2013-02-06 62 views
0

我可以得到兩個日期之間的時間間隔用這種方法:總和區間範圍

- (NSString *)calculateTime:(NSDate *)fromDateTime andDate:(NSDate *)toDateTime { 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 

    unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; 

    NSDateComponents *conversionInfo = [calendar components:unitFlags fromDate:fromDateTime toDate:toDateTime options:0]; 

    int hours = [conversionInfo hour]; 
    int minutes = [conversionInfo minute]; 
    int seconds = [conversionInfo second]; 

    return [NSString stringWithFormat:@"%02dh %02dm %02ds", hours, minutes, seconds]; 
} 

假設我有3個NSDate範圍:

2013-02-03 11:20:43 - 2013-02-03 12:42:12 // 01h 21m 29s 
2013-02-04 22:11:29 - 2013-02-05 01:56:30 // 03h 45m 01s 
2013-02-05 14:02:10 - 2013-02-05 18:32:08 // 04h 29m 58s 

我怎樣才能達到同樣的格式%02dh %02dm %02ds範圍內的所有NSDate範圍?換句話說,計算所有區間的總和。

任何建議,將不勝感激。

回答

1

您的目標是計算持續時間。持續時間與時區或類似情況無關。您可以計算各個持續時間並添加它們。

最簡單的方法是計算所有持續時間的總和(以秒爲單位),然後將其轉換爲更具可讀性的小時,分​​鍾和秒鐘形式。