2012-08-13 41 views
0

可能重複:
Fuzzy Date algorithm in Objective-C
How do I break down an NSTimeInterval into year, months, days, hours, minutes and seconds on iPhone?很好的方式來打印一個動態的持續時間的NSString

我感興趣的印刷媒體項目的播放時間就像'1小時的或'2分10秒',取決於NSTimeInterval的大小(沒有固定格式)。很差,沒有任何Cocoa Touch提供的課程。

在浪費時間重新發明輪子之前,我想問問是否有人可以推薦我實現這一點。我確信這是經常使用的東西,但我找不到任何在網絡上提供這種功能的庫/片段。

+1

可能重複[如何將NSTimeInterval分解爲iPhone上的年,月,日,小時,分鐘和秒?](http://stackoverflow.com/questions/1237778/how-do-i-break -down-an-nstimeinterval-into-year-months-days-hours-minutes-an)或可能的[模糊日期算法](http://stackoverflow.com/questions/1052951/fuzzy-date-algorithm-in-jective -c) – 2012-08-13 19:05:46

回答

1

你可以做這樣的事情:

- (NSString*)timeIntervalStringforDouble:(double)timeInterval { 
NSString *[email protected]""; 
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)[email protected]"second":@"seconds"; 
    intervalString = [intervalString stringByAppendingFormat:@"%d %@",seconds, temporalSegment]; 
} 
return intervalString; 
} 

砂金和格式的味道。

+0

我相信這樣做會有效,但我希望他們會成爲一個成熟的庫。 :/ – miho 2012-08-13 22:08:30

相關問題