这个问题在这里已经有答案了:
检查给定的时间是否介于两次之间(不考虑日期)(25个答案)
上个月关门了。
我想创建一个方法,告诉我是否在两个小时之间(即使我从不同的日子中选择小时),例如:
Current time: 20:00, start: 21:00, end: 23:00 -> returns false
Current time: 22:00, start: 21:00, end: 23:00 -> returns true
Current time: 01:00, start: 21:00, end: 8:00 -> returns true
Current time: 22:00, start: 21:00, end: 20:00 -> returns true
Current time: 05:00, start: 21:00, end: 4:00 -> returns false
有什么简单而干净的方法可以做到这一点吗?
1条答案
按热度按时间68de4m5k1#
您可以使用localtime(因为您希望它独立于日期、时区或诸如此类的东西)。是的
isBefore
类似的方法使这变得非常简单:用法很简单:
编辑
似乎你真的需要另一个逻辑来允许一天重叠的范围。你的例子是:
为了实现这一点,我将介绍以下更改。
首先,只需检查
before
实际上是在after
. 如果没有,那你就有这个案子。接下来,确定now
是在before
或者after
然后将另一个重置为一天的开始(00:00
)或者一天的结束(23:59
)分别。之后,您可以按照前面所示的正常方法再次进行比较: