是否有一个库来创建时间间隔来检查是否给定时间在python中命中它们



需要在给定的时间内设置要命中的时间间隔

期望代码看起来像这样:

import datetime
import lib
my_time = datetime.time(hour=7, minute=7, second=7)
my_interval = lib.Interval(from="01:02:03", till="03:02:01)
print(lib.hits_interval(time=my_time, interval=my_interval))

我看到的代码与pd at pandas interval

非常相似但是pandas操作的是时间戳对象,这是不可接受的,目的是处理裸时间。

您可以直接使用data/time/datetime对象,它们实现比较运算符:

import datetime
my_time = datetime.time(hour=7, minute=7, second=7)
start, end = datetime.time.fromisoformat("01:02:03"), datetime.time.fromisoformat("03:02:01")
print(start <= my_time < end)

如果你真的坚持使用一个类,你可以很容易地创建一个小的基于dataclassInterval对象:

import datetime
from dataclasses import dataclass

@dataclass
class Interval:
start: datetime.time
end: datetime.time
@classmethod
def fromstring(cls, start: str, end: str):
return cls(datetime.time.fromisoformat(start), datetime.time.fromisoformat(end))
def __contains__(self, item):
return self.start <= item < self.end  # inclusive start, exclusive end

my_time = datetime.time(hour=7, minute=7, second=7)
intervall = Interval.fromstring(start="01:02:03", end="03:02:01")
print(my_time in intervall)

最好的方法是使用部分lib:

import portion
import datetime
my_interval = portion.open(datetime.time(1, 2, 3), datetime.time(3, 2, 1))
my_time = datetime.time(7, 7, 7)
print(my_interval.contains(my_time))

相关内容

  • 没有找到相关文章

最新更新