- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有 2 TimeIntervals
,它只代表一天中与日期无关的时间(例如 8:00 AM 和 5:00 PM)。所以 0 代表恰好是午夜,在这种情况下,29,040 代表上午 8:04。我想检查手机的时间是否在这两个时间之间TimeIntervals
.
我发现了一些类似的 Stack Overflow 问题,但没有一个真正涉及 TimeIntervals
.好像只是使用 start <= Date().timeIntervalSinceReferenceDate <= end
否则某些东西将无法工作,因为它会返回巨大的值(value)。
在 Swift 3 中处理这种情况的最佳方法是什么?
编辑:澄清一下,我不需要担心夏令时之类的事情。例如,假设用户只希望应用程序中的某些事情发生在 X 和 Y 之间,其中 X 和 Y 以 TimeInterval
的形式提供给我自午夜以来的值(value)。所以检查手机的 TimeInterval
应该就足够了因为通常一天的午夜在完成操作之前的 X 和 Y 之间。
最佳答案
Date().timeIntervalSinceReferenceDate
返回自 2000 年 1 月 1 日以来的秒数,因此毫无疑问这是一个巨大的数字。
由于这个叫做夏令时的烦人的小东西,不建议将时间存储为自午夜以来的秒数。每年,不同的国家在不同的日子和不同的时间进行。例如,尽管英国和法国在同一天(2017 年 3 月 26 日)更改了时钟,但其中一个是从 1AM to 2AM 开始的。 , 另一个来自 2AM to 3AM .这很容易弄得一团糟!
改用DateComponents
:
let calendar = Calendar.current
let startTimeComponent = DateComponents(calendar: calendar, hour: 8)
let endTimeComponent = DateComponents(calendar: calendar, hour: 17, minute: 30)
let now = Date()
let startOfToday = calendar.startOfDay(for: now)
let startTime = calendar.date(byAdding: startTimeComponent, to: startOfToday)!
let endTime = calendar.date(byAdding: endTimeComponent, to: startOfToday)!
if startTime <= now && now <= endTime {
print("between 8 AM and 5:30 PM")
} else {
print("not between 8 AM and 5:30 PM")
}
关于swift - 测试一天中的当前时间是否在两个 TimeIntervals 之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45968640/
我已经扩展了 Date 以返回一个字符串,如下所示: extension Date { func timeAgoDisplay() -> String { print("Dat
我正在尝试更改 scheduledTimer 中的 timeInterval。我试图通过将变量更改为间隔而不是将 timeInterval 设置为此变量来做到这一点。我没有收到任何错误,但 timeI
我已经能够使用 setTimeout(function() 删除一个类,但现在它只是立即删除,所以我想知道如何让它成为 fadout() ; 还有。 setTimeout(function(){
我有 2 TimeIntervals ,它只代表一天中与日期无关的时间(例如 8:00 AM 和 5:00 PM)。所以 0 代表恰好是午夜,在这种情况下,29,040 代表上午 8:04。我想检查手
当我使用 timer = NSTimer.scheduledTimerWithTimeInterval(0.75, target: self, selector: Selector("drawInTi
我正在使用一个在 300 秒后调用的 NSTimer 实例。代码是这样的: timer = [[NSTimer scheduledTimerWithTimeInterval:300 target:se
我想每 6 小时调用一次 Web 服务。我是 iOS 新手。请帮助任何帮助将不胜感激。我被困住了。 最佳答案 您可以使用 NSTimer 并将其安排 6 小时 NSTimer *tim
我有一个主页和一个 PayYourBill 页面,在 PayYourBill 页面上,用户将输入关键信息,如果 'x' periodOfTime 没有交互,是否可以恢复到主页,我必须使用session
我正在尝试将耗时添加到 Date() 对象(它用于定时操作的恢复按钮)。 下面是负责计算更改后的 startDate 的代码的恢复部分。我期待它将 elapsed TimeInterval 添加到 s
我有一个格式为 00:00:00.00 的 NSString最初来自 [dateFormatter setDateFormat:@"HH:mm:ss.SS"]; 我如何获取该字符串并将其转换为 Tim
我正在尝试将 timeInterval 与整数值进行比较,因此我尝试将 timeInterval 转换为整数并进行比较。但我收到错误“无法转换为指针类型”: NSTimeInterval timeIn
RFC 2578“管理信息结构版本 2 (SMIv2)”包含类型 TimeTicks,定义为 IMPLICIT INTEGER (0..4294967295) 并描述为“表示时间的非负整数,以 2^3
我在单例中创建了一个Timer,并且我一直在努力解决为什么Timer没有触发。我查看了这里的帖子,但没有找到我认为可以直接回答我的问题的帖子。 class ConnectionStateMonitor
我正在制作一个简单的 SpriteKit 游戏,其中元素会掉落,并且我需要根据当前分数来管理元素生成速度。但我对 Timer.scheduledTimer 有疑问。 func manageItemsS
我请求您的知识,因为我是编程初学者。我想通过 Playground 实例化一个计时器。我认为我的计时器配置正确(isValid 和 TimeInterval),Playground 设置也正确,但是当
我已设置 setInterval 来更新我的调度程序。我正在从服务器获取 JSON 格式的数据。但如果我使用 json 数据,调度程序不会获得更新,但如果我输入静态值,它工作正常。以下是我的代码。 /
我有一个来自 Json 的时间组件。我正在尝试根据发布时间对对象进行分组。 我有一个像 1540432146 这样的时间间隔,它是双倍的。 我正在将它转换为日期类型使用 guard let timeI
我正在尝试获取 AVAudioPCMBuffer 的时间长度,但我似乎做不到。我尝试执行以下操作: func getLength(buffer: AVAudioPCMBuffer) -> TimeIn
覆盖函数更新(当前时间:NSTimeInterval){ //... } 如何在更新方法中停止当前时间?我想计算游戏开始后的时间。当玩家点击暂停按钮时,当前场景成功暂停。但是,更新中的 current
这是我的代码: if let date = messages?.date{ let dateFormatter = DateFormatter() da
我是一名优秀的程序员,十分优秀!