diff --git a/babel/dates.py b/babel/dates.py index 2f1b116e4..c317de358 100644 --- a/babel/dates.py +++ b/babel/dates.py @@ -1656,10 +1656,10 @@ def get_week_number(self, day_of_period: int, day_of_week: int | None = None) -> # If the weeknumber exceeds the maximum number of weeks for the given year # we must count from zero.For example the above calculation gives week 53 # for 2018-12-31. By iso-calender definition 2018 has a max of 52 - # weeks, thus the weeknumber must be 53-52=1. + # weeks, thus the weeknumber must be 53-1=52. max_weeks = datetime.date(year=self.value.year, day=28, month=12).isocalendar()[1] if week_number > max_weeks: - week_number -= max_weeks + week_number -= 1 return week_number diff --git a/tests/test_dates.py b/tests/test_dates.py index fef68ae73..22077bc48 100644 --- a/tests/test_dates.py +++ b/tests/test_dates.py @@ -795,3 +795,11 @@ def test_issue_892(): def test_issue_1089(): assert dates.format_datetime(datetime.now(), locale="ja_JP@mod") assert dates.format_datetime(datetime.now(), locale=Locale.parse("ja_JP@mod")) + + +def test_issue_1133(): + format = dates.DateTimeFormat(date(2006, 1, 8), Locale.parse('de_DE')) + assert format.get_week_number(6) == 1 + + format = dates.DateTimeFormat(date(2006, 1, 8), Locale.parse('en_US')) + assert format.get_week_number(6) == 2