我有三个int
:
现在,我可以将其格式化为NSString
:MM:SS.TT
但是:我怎样才能将时间跨度翻倍并将其打印出来?我必须使用像%
这样的东西来做基本的方式。
Xcode中有更聪明的选择吗?
由于
答案 0 :(得分:2)
这将为您实现这一目标。我已经分出了各种步骤来展示它是如何工作的,但你可能/应该根据你的目的压缩它
// Assumes NSInteger values already exist for minutes, seconds and tens
NSTimeInterval span = (minutes * 60) + seconds + ((double)tens / 10.0);
// Double the time-interval
NSTimeInterval twiceSpan = span * 2.0;
// Determine the components
minutes = floor(twiceSpan / 60.0);
seconds = floor(twiceSpan - (minutes * 60.0));
tens = round((twiceSpan - (minutes * 60) - seconds) * 10.0);
// Form a string to show the time as m:s.t where the seconds value is always two digits
NSString *time = [NSString stringWithFormat: @"%i:%02i.%i", minutes, seconds, tens];
答案 1 :(得分:1)
如果我理解正确,正确的Cocoa单位是NSTimeInterval
。这只是一个包含秒数的双精度数 - 所以你要将上面的所有内容添加到NSTimeInterval
中,将它乘以2,然后你就可以用[NSDate initWithTimeInterval:sinceDate:]
来表达任何漂亮的打印效果。 NSDate
中的[... dateWithString:]
等。
如果你只是表达间隔,我不知道你为什么不把它保留在NSInterval(或只是秒数)并将其表示为(seconds/60):(seconds%60).(tens)
或其他什么,这对我来说似乎很简单。将它分成3个整数对我来说似乎很尴尬。