diff --git a/src/humanize/time.py b/src/humanize/time.py index f0b24fa..815b20f 100644 --- a/src/humanize/time.py +++ b/src/humanize/time.py @@ -243,6 +243,7 @@ def naturaldelta( return _ngettext("1 year, %d day", "1 year, %d days", days) % days + years = round(delta.days / 365) return _ngettext("%d year", "%d years", years).replace("%d", "%s") % intcomma(years) diff --git a/tests/test_time.py b/tests/test_time.py index 63e171a..5e661a0 100644 --- a/tests/test_time.py +++ b/tests/test_time.py @@ -127,6 +127,7 @@ def test_naturaldelta_nomonths(test_input: dt.timedelta, expected: str) -> None: (dt.timedelta(days=9), "9 days"), (dt.timedelta(days=365), "a year"), (dt.timedelta(days=365 * 1_141), "1,141 years"), + (dt.timedelta(days=1058), "3 years"), ("NaN", "NaN"), # Returns non-numbers unchanged. # largest possible timedelta (dt.timedelta(days=999_999_999), "2,739,726 years"),