Двойной промежуток времени в Xcode - PullRequest
0 голосов
/ 15 января 2012

У меня три int:

  • минут
  • с
  • десятки (секунд / 10)

Теперь я могу отформатировать его следующим образом: NSString: MM: SS.TT

Но: Как я могу удвоить временной интервал и распечатать его? Я должен использовать что-то вроде %, чтобы сделать это основным способом.

Есть ли более умная опция в Xcode?

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 января 2012

Это достигнет этого для вас. Я разделил различные шаги, чтобы показать, как это работает, но вы можете / должны, вероятно, сократить это в соответствии с вашими целями

// 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 голос
/ 15 января 2012

Если я правильно вас понимаю, правильной единицей какао будет NSTimeInterval.Это просто двойное число, содержащее количество секунд - так что вы можете сложить все вышеперечисленное в это NSTimeInterval, умножить его на 2, а затем выразить любую красивую печать с помощью [NSDate initWithTimeInterval:sinceDate:] и [... dateWithString:]как в NSDate.

Если вы когда-либо выражаете только интервал, я не знаю, почему вы просто не сохранили бы его в NSInterval (или простоколичество секунд) и выразить его как (seconds/60):(seconds%60).(tens) или что-то еще, что мне кажется довольно простым.Мне кажется неудобным держать его разделенным на три части.

...