Ios 将经过的时间间隔添加到日期()
我试图将经过的时间添加到Date()对象(它用于定时操作的resume按钮) 下面是代码的简历部分,负责计算更改后的Ios 将经过的时间间隔添加到日期(),ios,objective-c,swift,Ios,Objective C,Swift,我试图将经过的时间添加到Date()对象(它用于定时操作的resume按钮) 下面是代码的简历部分,负责计算更改后的startDate。我希望它将经过的时间间隔添加到开始日期 代码如下: print(startDate) let elapsed = resumeTime - startDate.timeIntervalSinceReferenceDate print(elapsed) startDate.addTimeInterval(elapsed) print(startDate) 这是我
startDate
。我希望它将经过的时间间隔添加到开始日期
代码如下:
print(startDate)
let elapsed = resumeTime - startDate.timeIntervalSinceReferenceDate
print(elapsed)
startDate.addTimeInterval(elapsed)
print(startDate)
这是我在运行大约2分钟后暂停计时器约3秒时的输出
输出:
2016-11-17 08:24:15 +0000
110.831687986851
2016-11-17 08:26:06 +0000
第二个打印日期应该更像:
2016-11-17 08:24:18 +0000
addTimeInterval
的定义是:
将时间间隔添加到此日期
这不正是我想要的吗?我是不是解释错了
注意,resumeTime
是在点击暂停按钮时定义的。设置如下:
resumeTime = Date.timeIntervalSinceReferenceDate
谢谢
这是我在运行大约2分钟后暂停计时器约3秒时的输出
尽管如此,您的运行时间是2分钟
确保在正确的位置开始运行,并确保此行生成所需的时间戳:
resumeTime = Date.timeIntervalSinceReferenceDate
下面是一个与您非常相似的代码示例,addTimeInterval
运行良好
let resume = Date().timeIntervalSinceReferenceDate + 2
print(startDate)
let elapsed = resume - startDate.timeIntervalSinceReferenceDate
print(elapsed)
startDate.addTimeInterval(elapsed)
print(startDate)
输出
2016-11-17 08:53:34 +0000
2.00815904140472
2016-11-17 08:53:36 +0000
我认为您代码中的错误在于您从未再次设置开始日期,因此您的已用时间计算始终基于应用程序首次运行的时间,而不是自上次暂停以来所用的时间。已用时间的输出是什么?我在阅读了您的答案后计算出来的,请参阅我添加的答案。我投票支持你,因为这几乎是我想要的。我不应该使用startDate
。