我的倒数有一点问题,实际上一切正常,但是小时数格式不正确,这说明了这一点:


  03:94:20:38


但是我觉得小时的真实倒数是:


  03:22:20:38



我的代码:

 - (void)updateCounter:(NSTimer *)tmr
{
    self.dateContest.hidden = NO;
    NSTimeInterval iv = [self.date timeIntervalSinceNow];
    int d = iv / 86400;
    int h = iv / 3600; // My problem
    int m = (iv - h * 3600) / 60;
    int s = iv - h * 3600 - m * 60;
    self.dateContest.text = [NSString stringWithFormat:@"%02d:%02d:%02d:%02d", d, h, m, s];
    if (d + h + m + s <= 0) {
        [tmr invalidate];
    }
}

最佳答案

您也必须减去当天的时间

int d = iv / 86400;
    int h = (iv / 3600) - (d * 24);
int m = (iv - (h + d * 24) * 3600) / 60
int s = lroundf(iv) % 60

关于ios - 倒计时小时错误(NSDate和Objective-C),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35796431/

10-13 02:20