【发布时间】:2021-02-12 18:58:23
【问题描述】:
我想知道您认为哪个是在没有特定日期的情况下快速比较两个不同时间的最佳方法
目前我一直在考虑以这种方式实现
static func isClosingTime() -> Bool {
let currentHour = Calendar.current.component(.hour, from: Date())
let currentMinute = Calendar.current.component(.minute, from: Date())
currentHour >= 19 && currentMinute <= 30
}
我想知道是否有更好的方法
我接受所有关于干净和正确代码的建议
【问题讨论】:
-
但是您想比较什么以及如何比较?您说两次不同的时间,但在您的代码中,您似乎比较了一次。您要比较的是特定时间还是时间间隔?也许你也可以添加一个单词和数字的例子。
-
所以在这里我认为存在英语问题,所以我很抱歉,但我正在使用英语翻译,我认为它翻译得不好......我只是重读了我的问题,实际上它不是清楚.. 抱歉,但看起来使用翻译器不是一个好主意.. 我尝试更新我的问题
-
@Joakim Danielson 我希望 isClosingTime 函数在当前时间大于 19:30 时返回“True”值,我想知道我的实现是否良好或者我应该使用其他更好的方法
-
但这是您要问的正确问题吗?在下面的答案中,如果关闭时间是午夜之后的某个时间,比如 01:00,会发生什么?那么 01:00 到 23:59 之间的所有时间都将在关闭时间之后进行。同样对于 19:30 作为关闭时间,这将不清楚,因为直接在午夜之后,该函数将返回 false,因此 00:01 不在关闭时间之后。
-
事实上我只是在分析这种可能性.. 所以也许我还应该考虑验证当前时间是否在时间空间内,例如 19:30 - 9:00 或 7pm - 9am。答案中的功能已经在应用程序的其他部分实现了,但当然我也必须考虑你的答案,所以还要计算一个时间间隔
标签: ios swift string date integer