Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion Lib/calendar.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,13 @@ class Day(IntEnum):
SUNDAY = 6


def _get_enum_attribute(value, enum_type):
"""Returns the value of the specified attribute of a Day or Month Enum object based on its integer value."""
if enum_type == "day":
return Day(value)
else:
return Month(value)


# Number of days per month (except for February in leap years)
mdays = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
Expand Down Expand Up @@ -143,7 +150,7 @@ def weekday(year, month, day):
"""Return weekday (0-6 ~ Mon-Sun) for year, month (1-12), day (1-31)."""
if not datetime.MINYEAR <= year <= datetime.MAXYEAR:
year = 2000 + year % 400
return datetime.date(year, month, day).weekday()
return _get_enum_attribute(datetime.date(year, month, day).weekday(),'day')


def monthrange(year, month):
Expand Down