将NSTimeInterval转换为Days,Hours,Minutes,Seconds

时间:2016-05-01 17:20:23

标签: ios objective-c nstimeinterval

我有2个日期。

  1. 结束日期
  2. 当前日期 现在,我想找到NSTimeInterval并计算以天,小时,分钟,秒为单位的剩余时间。 我不想使用 NSDateComponents 。 我想要一些计算公式,以天,小时,分钟,秒为单位给出剩余时间。
  3. 我尝试了以下公式,但该公式给出了剩余的小时,分​​钟,秒。

    但我如何计算这个天,小时,分钟,秒?

    我使用以下代码

    @property (nonatomic, assign) NSTimeInterval secondsLeft;
    _hours = (int)self.secondsLeft / 3600;
    _minutes = ((int)self.secondsLeft % 3600) / 60;
    _seconds = ((int)self.secondsLeft %3600) % 60;
    

1 个答案:

答案 0 :(得分:2)

您的一些计算不正确。你想要:

_hours = (int)self.secondsLeft / 3600;
_minutes = (int)self.secondsLeft / 60 % 60;
_seconds = (int)self.secondsLeft % 60;

这假定_hours_minutes_seconds属于int类型(或其他一些适当的整数类型)。

如果要将NSTimeInterval格式化为适合用户区域设置的有用字符串,请使用NSDateComponentsFormatter

NSDateComponentsFormatter *formatter = [[NSDateComponentsFormatter alloc] init];
NSString *result = [formatter stringFromTimeInterval:self.secondsLeft];