首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将经过的TimeInterval添加到Date()

将经过的TimeInterval添加到Date()
EN

Stack Overflow用户
提问于 2016-11-17 08:08:15
回答 2查看 114关注 0票数 1

我正在尝试将经过的时间添加到Date()对象(用于定时操作的简历按钮)。

下面是负责计算修改后的startDate的代码的简历部分。我希望它能将elapsed TimeInterval添加到startDate中。

这是代码:

代码语言:javascript
复制
print(startDate)
let elapsed = resumeTime - startDate.timeIntervalSinceReferenceDate
print(elapsed)
startDate.addTimeInterval(elapsed)
print(startDate)

这是当我在运行时大约2分钟后暂停计时器大约3秒时的输出。

输出:

代码语言:javascript
复制
2016-11-17 08:24:15 +0000
110.831687986851
2016-11-17 08:26:06 +0000

第二个印刷日期应该更像是:

代码语言:javascript
复制
2016-11-17 08:24:18 +0000

addTimeInterval的定义是:

向此日期添加一个TimeInterval。

这不正是我想要的吗?我解释得不对吗?

注意,resumeTime是在点击暂停按钮时定义的。它的设置如下:

代码语言:javascript
复制
resumeTime = Date.timeIntervalSinceReferenceDate

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-17 08:57:56

这是当我在运行时大约2分钟后暂停计时器大约3秒时的输出。

虽然,您的elapsed时间是2分钟。

请确保在正确的位置开始运行,还确保这一行生成所需的时间戳:

代码语言:javascript
复制
resumeTime = Date.timeIntervalSinceReferenceDate

下面是与您的代码非常相似的代码示例,addTimeInterval工作得很好。

代码语言:javascript
复制
let resume = Date().timeIntervalSinceReferenceDate + 2

print(startDate)
let elapsed = resume - startDate.timeIntervalSinceReferenceDate
print(elapsed)
startDate.addTimeInterval(elapsed)
print(startDate)

输出

代码语言:javascript
复制
2016-11-17 08:53:34 +0000
2.00815904140472
2016-11-17 08:53:36 +0000
票数 1
EN

Stack Overflow用户

发布于 2016-11-17 09:00:30

我认为您的代码中的错误是您再也没有设置startDate,所以您的elapsed计算总是基于应用程序第一次运行的时间,而不是上次暂停之后的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40649647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档