当面のタスクは非常に単純です — NSTimeInterval を 12:34:56 (12 時間 34 分 56 秒) のような NSString に変換します。
質問する
2851 次
1 に答える
10
@golegkaの回答のより高速なバージョンは次のとおりです。
NSString *stringFromInterval(NSTimeInterval timeInterval)
{
#define SECONDS_PER_MINUTE (60)
#define MINUTES_PER_HOUR (60)
#define SECONDS_PER_HOUR (SECONDS_PER_MINUTE * MINUTES_PER_HOUR)
#define HOURS_PER_DAY (24)
// convert the time to an integer, as we don't need double precision, and we do need to use the modulous operator
int ti = round(timeInterval);
return [NSString stringWithFormat:@"%.2d:%.2d:%.2d", (ti / SECONDS_PER_HOUR) % HOURS_PER_DAY, (ti / SECONDS_PER_MINUTE) % MINUTES_PER_HOUR, ti % SECONDS_PER_MINUTE];
#undef SECONDS_PER_MINUTE
#undef MINUTES_PER_HOUR
#undef SECONDS_PER_HOUR
#undef HOURS_PER_DAY
}
これは を台無しにするNSCalendars
のではなく、単純な整数演算を使用するだけです。
于 2012-06-08T02:27:05.933 に答える