0

可能重复:
Objective-C 中的模糊日期算法
如何在 iPhone 上将 NSTimeInterval 分解为年、月、日、小时、分钟和秒?

我有兴趣根据 NSTimeInterval 的大小(没有固定格式)打印“1 小时”或“2 分 10 秒”等媒体项目的播放持续时间。不幸的是,Cocoa Touch 没有提供任何类。

在浪费时间重新发明轮子之前,我想问一下是否有人可以推荐我一个实现。我确信这是经常使用的东西,但我在网络上找不到任何提供这种功能的库/片段。

4

1 回答 1

1

你可以这样做:

- (NSString*)timeIntervalStringforDouble:(double)timeInterval {
NSString *intervalString=@"";
NSInteger hours = (int)floor(timeInterval/3600.0);
double remainder = timeInterval-(hours*3600);
NSInteger minutes = (int)floor(remainder/60.0);
NSInteger seconds = (int)round(remainder-(minutes*60));
NSString *temporalSegment = @"hour";
if (hours) {
    if (hours>1) temporalSegment = @"hours";
    intervalString = [intervalString stringByAppendingFormat:@"%d %@ ",hours,temporalSegment];
}
if (minutes || hours) {
    temporalSegment = (minutes==1)? @"minute":@"minutes";
    intervalString = [intervalString stringByAppendingFormat:@"%d %@ ",minutes,temporalSegment];
}
if (seconds || minutes) {
    temporalSegment = (seconds==1)?@"second":@"seconds";
    intervalString = [intervalString stringByAppendingFormat:@"%d %@",seconds, temporalSegment];
}
return intervalString; 
}

标点符号和格式以适应口味。

于 2012-08-13T21:04:00.347 回答