【发布时间】:2017-06-05 15:18:14
【问题描述】:
我必须确定 H 和 H+3,其中 H >= 到最近的小时。
让我给你看一些例子:
如果今天的时间是 0h00 -> H = 0h 并且 H+3 = 3h
如果今天的时间是 0h01 -> H = 1h 并且 H+3 = 3h
如果今天的时间是 21h00 -> H = 21h 并且 H+3 = 0h
如果今天的时间是 22h34 -> H = 23h and H+3 = 2h (day + 1)
我是 Swift 的新手,我知道如何在 Obj C 中获取最近的时间,但对于 Swift 我不确定。
有没有一种快速的方法来确定这两个变量 H 和 H+3 以便在任何给定时间设置两个标签的文本。
我尝试了这种方法,但它给了我最近的时间,但它是最接近的时间,而不是 >=。
func nextHourDate() -> NSDate? {
let calendar = NSCalendar.currentCalendar()
let date = NSDate()
let minuteComponent = calendar.components(NSCalendarUnit.Minute, fromDate: date)
let components = NSDateComponents()
components.minute = 60 - minuteComponent.minute
return calendar.dateByAddingComponents(components, toDate: date, options: [])
}
我正在使用 Swift 2.3 进行开发
编辑:
阅读答案/cmets 后,这是我开发的。
func determineH() -> NSDate? {
let gregorian = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let now = NSDate()
let components = gregorian.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: now)
if components.minute != 0 {
components.hour = components.hour + 1
components.minute = 0
}
let date = gregorian.dateFromComponents(components)!
return date
}
【问题讨论】:
-
“我正在使用 Swift 2.3 进行开发” 为什么?您是“Swift 新手”,那么为什么要学习一种现在随时都会死的语言呢?学习 Swift 3,而不是 Swift 2。
-
因为我正在维护一个使用 Swift 2.3 开发的应用程序。我需要尽快发布。当我没有压力时,我会翻译申请。
-
好答案。 :)
-
但是谢谢你的建议,你不是唯一一个告诉我这个的。我迫不及待想学习 Swift 3,你无法想象。
-
我不是故意拉你的链子的。道歉。