倒计时错误(NSDate 和 Objective-C)
Countdown hours bug (NSDate and Objective-C)
我的倒计时有点问题,事实上一切正常,但时间格式不正确也就是说,它向我显示了这个:
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
我的倒计时有点问题,事实上一切正常,但时间格式不正确也就是说,它向我显示了这个:
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