Ios 在Xcode中加倍时间跨度

Ios 在Xcode中加倍时间跨度,ios,xcode,date,timespan,Ios,Xcode,Date,Timespan,我有三个int: 会议记录 秒 十(秒/10) 现在,我可以将其格式化为NSString:MM:SS.TT 但是:我怎样才能将时间跨度加倍并打印出来呢?我必须使用像%这样的基本方法 Xcode中有更智能的选项吗 谢谢这将为您实现这一目标。我已经划分了不同的步骤来展示它是如何工作的,但是您可以/应该将其浓缩以适合您的目的 // Assumes NSInteger values already exist for minutes, seconds and tens NSTimeInterval

我有三个
int

  • 会议记录
  • 十(秒/10)
现在,我可以将其格式化为
NSString
:MM:SS.TT

但是:我怎样才能将时间跨度加倍并打印出来呢?我必须使用像
%
这样的基本方法

Xcode中有更智能的选项吗


谢谢

这将为您实现这一目标。我已经划分了不同的步骤来展示它是如何工作的,但是您可以/应该将其浓缩以适合您的目的

// 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];

这将为您实现这一目标。我已经划分了不同的步骤来展示它是如何工作的,但是您可以/应该将其浓缩以适合您的目的

// 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];

如果我理解正确,那么正确的可可单位是。这是一个包含秒数的双精度数,所以你可以把上面所有的加在一个
NSTimeInterval
上,乘以2,然后你可以用
[NSDate initWithTimeInterval:sinceDate://code>和
[…dateWithString://code>之类的数字来表示任何漂亮的打印


如果你只表达间隔,我不知道你为什么不把它保持在NSInterval(或者仅仅是秒数)中,然后用
(seconds/60):(seconds%60)。(tens)
或者别的什么来表达,这对我来说很简单。将它分成3整数对我来说似乎很尴尬。

如果我理解正确,正确的可可单位是。这是一个包含秒数的双精度数,所以你可以把上面所有的加在一个
NSTimeInterval
上,乘以2,然后你可以用
[NSDate initWithTimeInterval:sinceDate://code>和
[…dateWithString://code>之类的数字来表示任何漂亮的打印


如果你只表达间隔,我不知道你为什么不把它保持在NSInterval(或者仅仅是秒数)中,然后用
(seconds/60):(seconds%60)。(tens)
或者别的什么来表达,这对我来说很简单。把它分成3个整数对我来说似乎很尴尬。

你不能在
NSTimeInterval
上做
%
,因为它是
双精度的+我同意,最好尽可能保持时间间隔,但如果他必须把时间作为单独的整数…@DarkDust-很好。无论如何,在应用整数数学之前,我会将其转换为
(int)
(long)
,因为我想删除该部分输出的小数秒。您不能在
NSTimeInterval上执行
%
,因为它是
双精度的+我同意,最好尽可能保持时间间隔,但如果他必须把时间作为单独的整数…@DarkDust-很好。无论如何,在应用整数数学之前,我会在这个过程中将其转换为
(int)
(long)
,因为我想去掉输出部分的小数秒。