엑스 코드에서 시간 범위 :더블 나는 세 <code>int</code> 년대있어
- 분
- 초
- 수십 (초/10) 이제
, 내가 할 수 오전 MM :하십시오 NSString
으로 같은 포맷
그러나 SS.TT
을 : 어떻게 시간 범위를 두 배로 그것을 밖으로 인쇄 할 수 있습니까? 나는 그것을 기본 방법으로 수행하기 위해%
과 같은 것을 사용해야한다.
엑스 코드에서 스마트 옵션이 있습니까?
감사합니다.
엑스 코드에서 시간 범위 :더블 나는 세 <code>int</code> 년대있어
, 내가 할 수 오전 MM :하십시오 NSString
으로 같은 포맷
그러나 SS.TT
을 : 어떻게 시간 범위를 두 배로 그것을 밖으로 인쇄 할 수 있습니까? 나는 그것을 기본 방법으로 수행하기 위해%
과 같은 것을 사용해야한다.
엑스 코드에서 스마트 옵션이 있습니까?
감사합니다.
이렇게하면됩니다. 나는 그것이 어떻게 작동하는지 보여주기 위해 여러 단계를 분리했습니다,하지만 당신은/아마 내가 제대로 이해하고 있다면이 당신의 목적을
// 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
입니다. (초)을 포함하는 이중은 어느 - 그래서 당신은, 하나 NSTimeInterval
들로 위의 모든 추가 2를 곱하면, 다음은 [NSDate initWithTimeInterval:sinceDate:]
및 [... dateWithString:]
및 NSDate
에서 등 어떤 꽤 인쇄를 표현할 수있다.
단지 간격을 표현하는 사람이라면 왜 NSInterval (또는 단지 초)에 넣지 않고 (seconds/60):(seconds%60).(tens)
또는 그 이상으로 표현할 수 있을지 모르겠다. 나에게 솔직한. 그것을 3 개의 ints로 나뉘게 유지하는 것은 나에게 어색한 것처럼 보인다. 그것은`double` 이후
당신은'NSTimeInterval'에'%'를 할 수 없습니다. +1 나머지. – DarkDust
때마다 당신이 할 수있는 NSTimeInterval으로 시간을 유지하기 위해, 더 나은 합의,하지만 그는 별도의 int ... – reddersky
@DarkDust로를 가지고있는 경우 - 좋은 지적. 어쨌든 정수 수학을 적용하기 전에 프로세스의'(int)'또는'(long)'에 캐스트 할 것입니다. 왜냐하면 출력의 해당 부분에 대한 소수 초를 버리기를 원할 것이기 때문입니다. –