2013-02-06 58 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

您的目标是计算持续时间。持续时间与时区或类似情况无关。您可以计算各个持续时间并添加它们。

最简单的方法是计算所有持续时间的总和(以秒为单位),然后将其转换为更具可读性的小时,分​​钟和秒钟形式。