我正在制作秒表应用程序。我正在计算自从应用程序进入后台以来经过的时间,因此我可以将其添加到应用程序返回到前台的秒表时间上。我有这段代码,当NSNotification发送到我的StopwatchViewController时,经过的时间以秒为单位。我试图将秒转换为小时,分钟和秒:
-(void)newMessageReceived:(NSNotification *) notification
{
elapsedTime = [[notification object] intValue];
elapsedHours = elapsedTime / 3600;
elapsedTime = elapsedTime - (elapsedTime % 3600);
elapsedMinutes = elapsedTime / 60;
elapsedTime = elapsedTime - (elapsedTime % 60);
elapsedSeconds = elapsedTime;
secondInt = secondInt + elapsedSeconds;
if (secondInt > 59) {
++minuteInt;
secondInt -= 60;
}
minuteInt = minuteInt + elapsedMinutes;
if (minuteInt > 59) {
++hourInt;
minuteInt -= 60;
}
hourInt = hourInt + elapsedHours;
if (hourInt > 23) {
hourInt = 0;
}
}
通知对象已分配给elapsedTime,仅此而已; elapsedHours / mins / seconds都保持为0,而elapsedTime保持不变。为什么不起作用?
最佳答案
这种方法似乎过于复杂且容易出错。
为什么不只记录开始时间(如NSTimeInterval或NSDate),然后从当前时间中减去开始时间以获取经过的秒数呢?
关于ios - 将秒转换为小时,分钟和秒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20442026/