我正在制作秒表应用程序。我正在计算自从应用程序进入后台以来经过的时间,因此我可以将其添加到应用程序返回到前台的秒表时间上。我有这段代码,当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/

10-11 19:27