在Xcode中加倍一段时间

时间:2012-01-15 09:28:26

标签: ios xcode date timespan

我有三个int

  • 分钟
  • 十(秒/ 10)

现在,我可以将其格式化为NSString:MM:SS.TT

但是:我怎样才能将时间跨度翻倍并将其打印出来?我必须使用像%这样的东西来做基本的方式。

Xcode中有更聪明的选择吗?

由于

2 个答案:

答案 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个整数对我来说似乎很尴尬。