data-xexe/xexe/utils.py

42 lines
1.2 KiB
Python

import datetime
class DateRange:
def __init__(self, start_date: datetime.date, end_date: datetime.date):
if type(start_date) != datetime.date or type(end_date) != datetime.date:
raise TypeError("start_date and end_date must be date objects.")
if start_date > end_date:
raise ValueError("start_date can't be after end_date.")
self._start_date = start_date
self._end_date = end_date
@property
def start_date(self):
return self._start_date
@start_date.setter
def start_date(self, value: datetime.date):
if type(value) != datetime.date:
raise TypeError("start_date must be a date object.")
if value > self._end_date:
raise ValueError("start_date can't be after end_date.")
self._start_date = value
@property
def end_date(self):
return self._end_date
@end_date.setter
def end_date(self, value: datetime.date):
if type(value) != datetime.date:
raise TypeError("end_date must be a date object.")
if value < self._start_date:
raise ValueError("end_date can't be before start_date.")
self._end_date = value