def __init__(self, date=None, calendar=gregorian, format=None):
self.calendar = calendar
if date is None:
self.ordinal = datetime.date.today().toordinal()
self.ymd = calendar.ordinal_to_date(self.ordinal)
elif isinstance(date, Date):
self.ordinal = date.ordinal
self.ymd = calendar.ordinal_to_date(self.ordinal)
elif isinstance(date, datetime.date):
self.ordinal = date.toordinal()
self.ymd = calendar.ordinal_to_date(self.ordinal)
elif isinstance(date, Integral):
self.ordinal = int(date)
self.ymd = calendar.ordinal_to_date(self.ordinal)
elif non_string_sequence(date, Integral) and len(date) == 3:
self.ymd = YMD(*date)
if not calendar.validate(self.ymd):
raise InvalidDate("Invalid {} date: {}".format(calendar.calendar_name, self.ymd))
self.ordinal = calendar.date_to_ordinal(self.ymd)
else:
raise TypeError("Invalid input type for Date")
self.weekday = calendar.weekday(self.ymd, self.ordinal)
self.format = format
评论列表
文章目录