Files
tt/lib/TimeSlot.py

45 lines
1.1 KiB
Python
Raw Normal View History

2024-06-13 10:09:54 +02:00
from datetime import datetime
class TimeSlot():
def __init__(self, name: str, start: datetime = datetime.now(), end: datetime = None):
self.name = name
self.start = start
if end:
self.end = end
self._creation_time = datetime.now().timestamp()
@property
def name(self):
return self._name
@name.setter
def name(self, n: str):
self._name = n
@property
def start(self):
return datetime.fromtimestamp(self._start)
@start.setter
def start(self, d: datetime):
_d = d.replace(second=0, microsecond=0)
self._start = _d.timestamp()
2024-06-13 10:09:54 +02:00
@property
def end(self):
2024-06-13 10:38:43 +02:00
if "_end" in self.__dict__:
return datetime.fromtimestamp(self._end)
return None
2024-06-13 10:09:54 +02:00
@end.setter
def end(self, d: datetime):
_d = d.replace(second=0, microsecond=0)
if _d < self.start:
2024-06-13 10:09:54 +02:00
raise ValueError("End date must be after the start date.")
self._end = _d.timestamp()
2024-06-13 11:15:48 +02:00
def end_now(self):
self.end = datetime.now()