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)
,因为我想去掉输出部分的小数秒。