Get Day name from Weekday int
I have a weekday integer (0,1,2...) and I need to get the day name ('Monday', 'Tuesday',...).
Is there a built in Python function or way of doing this?
Here is the function I wrote, which works but I wanted something from the built in datetime lib.
def dayNameFromWeekday(weekday): if weekday == 0: return "Monday" if weekday == 1: return "Tuesday" if weekday == 2: return "Wednesday" if weekday == 3: return "Thursday" if weekday == 4: return "Friday" if weekday == 5: return "Saturday" if weekday == 6: return "Sunday"
It is more Pythonic to use the calendar module:
>>> import calendar >>> list(calendar.day_name) ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
Or, you can use common day name abbreviations:
>>> list(calendar.day_abbr) ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
Then index as you wish:
>>> calendar.day_name 'Tuesday'
(If Monday is not the first day of the week, use setfirstweekday to change it)
Using the calendar module has the advantage of being location aware:
>>> import locale >>> locale.setlocale(locale.LC_ALL, 'de_DE') 'de_DE' >>> list(calendar.day_name) ['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag']