diff --git a/Lib/calendar.py b/Lib/calendar.py index 477f59553ed..9af2c933f1a 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -29,11 +29,13 @@ class _localized_name: self.format = format self.len = len def __getitem__(self, item): - if item > self.len-1 or item < -self.len: - raise IndexError - if item < 0: - item += self.len - return strftime(self.format, (item,)*9).capitalize() + if isinstance(item, int): + if item < 0: item += self.len + if not 0 <= item < self.len: + raise IndexError, "out of range" + return strftime(self.format, (item,)*9).capitalize() + elif isinstance(item, type(slice(0))): + return [self[e] for e in range(self.len)].__getslice__(item.start, item.stop) def __len__(self): return self.len @@ -42,8 +44,8 @@ day_name = _localized_name('%A', 7) day_abbr = _localized_name('%a', 7) # Full and abbreviated names of months (1-based arrays!!!) -month_name = _localized_name('%B', 12) -month_abbr = _localized_name('%b', 12) +month_name = _localized_name('%B', 13) +month_abbr = _localized_name('%b', 13) # Constants for weekdays (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)