diff --git a/src/humanize/time.py b/src/humanize/time.py
index 7f68ff9..716648a 100644
--- a/src/humanize/time.py
+++ b/src/humanize/time.py
@@ -196,8 +196,8 @@ def naturalday(value, format="%b %d"):
 
 
 def naturaldate(value):
-    """Like naturalday, but will append a year for dates that are a year
-    ago or more."""
+    """Like naturalday, but append a year for dates more than about five months away.
+    """
     try:
         value = dt.date(value.year, value.month, value.day)
     except AttributeError:
@@ -207,6 +207,6 @@ def naturaldate(value):
         # Date arguments out of range
         return value
     delta = abs_timedelta(value - dt.date.today())
-    if delta.days >= 365:
+    if delta.days >= 5 * 365 / 12:
         return naturalday(value, "%b %d %Y")
     return naturalday(value)

naturaldate returns ambiguous values
```pycon
>>> import humanize
>>> from datetime import datetime, timedelta
>>> humanize.naturaldate(datetime.now()-timedelta(3))
'Jan 15'
>>> humanize.naturaldate(datetime.now()+timedelta(362))
'Jan 15'
```

I'd suggest to add the year for all dates that are more than about five months away. This would lead to the following output:

| date | naturaldate (executed in Jan 2015) |
| --- | --- |
| 2014-08-20 | Aug 20 |
| 2015-08-20 | Aug 20 2015 |
| 2014-06-20 | Jun 20 2014 |
| 2015-06-20 | Jun 20 |

(Even when only used for dates that are necessarily in the past, like "comment posted on ...", the current behaviour is not perfect: If I read "Jan 19" on Jan 18, 2015, I won't not assume it means Jan 19, 2014.)

diff --git a/tests/test_time.py b/tests/test_time.py
index 7217c64..f9f0be7 100644
--- a/tests/test_time.py
+++ b/tests/test_time.py
@@ -314,13 +314,13 @@ def test_naturalday(test_args, expected):
         (VALUE_ERROR_TEST, VALUE_ERROR_TEST),
         (OVERFLOW_ERROR_TEST, OVERFLOW_ERROR_TEST),
         (dt.date(2019, 2, 2), "Feb 02 2019"),
-        (dt.date(2019, 3, 2), "Mar 02"),
-        (dt.date(2019, 4, 2), "Apr 02"),
-        (dt.date(2019, 5, 2), "May 02"),
-        (dt.date(2019, 6, 2), "Jun 02"),
-        (dt.date(2019, 7, 2), "Jul 02"),
-        (dt.date(2019, 8, 2), "Aug 02"),
-        (dt.date(2019, 9, 2), "Sep 02"),
+        (dt.date(2019, 3, 2), "Mar 02 2019"),
+        (dt.date(2019, 4, 2), "Apr 02 2019"),
+        (dt.date(2019, 5, 2), "May 02 2019"),
+        (dt.date(2019, 6, 2), "Jun 02 2019"),
+        (dt.date(2019, 7, 2), "Jul 02 2019"),
+        (dt.date(2019, 8, 2), "Aug 02 2019"),
+        (dt.date(2019, 9, 2), "Sep 02 2019"),
         (dt.date(2019, 10, 2), "Oct 02"),
         (dt.date(2019, 11, 2), "Nov 02"),
         (dt.date(2019, 12, 2), "Dec 02"),
@@ -331,12 +331,12 @@ def test_naturalday(test_args, expected):
         (dt.date(2020, 5, 2), "May 02"),
         (dt.date(2020, 6, 2), "Jun 02"),
         (dt.date(2020, 7, 2), "Jul 02"),
-        (dt.date(2020, 8, 2), "Aug 02"),
-        (dt.date(2020, 9, 2), "Sep 02"),
-        (dt.date(2020, 10, 2), "Oct 02"),
-        (dt.date(2020, 11, 2), "Nov 02"),
-        (dt.date(2020, 12, 2), "Dec 02"),
-        (dt.date(2021, 1, 2), "Jan 02"),
+        (dt.date(2020, 8, 2), "Aug 02 2020"),
+        (dt.date(2020, 9, 2), "Sep 02 2020"),
+        (dt.date(2020, 10, 2), "Oct 02 2020"),
+        (dt.date(2020, 11, 2), "Nov 02 2020"),
+        (dt.date(2020, 12, 2), "Dec 02 2020"),
+        (dt.date(2021, 1, 2), "Jan 02 2021"),
         (dt.date(2021, 2, 2), "Feb 02 2021"),
     ],
 )

pip install -e .[tests]
parse_log_pytest
requirements.txt
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
exceptiongroup==1.2.2
freezegun==1.5.1
-e git+https://github.com/jmoiron/humanize.git@22a0a136e7358f22797c120bbd85acf48822d13e#egg=humanize
importlib-metadata==6.7.0
iniconfig==2.0.0
packaging==24.0
pluggy==1.2.0
pytest==7.4.4
pytest-cov==4.1.0
python-dateutil==2.9.0.post0
six==1.17.0
tomli==2.0.1
typing_extensions==4.7.1
zipp==3.15.0

name: humanize
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.2.7
      - exceptiongroup==1.2.2
      - freezegun==1.5.1
      - humanize==1.0.1.dev26
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - packaging==24.0
      - pluggy==1.2.0
      - pytest==7.4.4
      - pytest-cov==4.1.0
      - python-dateutil==2.9.0.post0
      - six==1.17.0
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - zipp==3.15.0
prefix: /opt/conda/envs/humanize

tests/test_time.py::test_naturaldate[test_input10-Mar tests/test_time.py::test_naturaldate[test_input11-Apr tests/test_time.py::test_naturaldate[test_input12-May tests/test_time.py::test_naturaldate[test_input13-Jun tests/test_time.py::test_naturaldate[test_input14-Jul tests/test_time.py::test_naturaldate[test_input15-Aug tests/test_time.py::test_naturaldate[test_input16-Sep tests/test_time.py::test_naturaldate[test_input27-Aug tests/test_time.py::test_naturaldate[test_input28-Sep tests/test_time.py::test_naturaldate[test_input29-Oct tests/test_time.py::test_naturaldate[test_input30-Nov tests/test_time.py::test_naturaldate[test_input31-Dec tests/test_time.py::test_naturaldate[test_input32-Jan
tests/test_time.py::TimeUtilitiesTestCase::test_date_and_delta tests/test_time.py::TimeTestCase::test_naturaldelta tests/test_time.py::TimeTestCase::test_naturaldelta_nomonths tests/test_time.py::TimeTestCase::test_naturaltime tests/test_time.py::TimeTestCase::test_naturaltime_nomonths tests/test_time.py::test_naturalday[test_args0-today] tests/test_time.py::test_naturalday[test_args1-tomorrow] tests/test_time.py::test_naturalday[test_args2-yesterday] tests/test_time.py::test_naturalday[test_args3-Mar tests/test_time.py::test_naturalday[test_args4-02/26/1984] tests/test_time.py::test_naturalday[test_args5-1982.06.27] tests/test_time.py::test_naturalday[test_args6-None] tests/test_time.py::test_naturalday[test_args7-Not tests/test_time.py::test_naturalday[test_args8-expected8] tests/test_time.py::test_naturalday[test_args9-expected9] tests/test_time.py::test_naturaldate[test_input0-today] tests/test_time.py::test_naturaldate[test_input1-tomorrow] tests/test_time.py::test_naturaldate[test_input2-yesterday] tests/test_time.py::test_naturaldate[test_input3-Mar tests/test_time.py::test_naturaldate[test_input4-Jun tests/test_time.py::test_naturaldate[None-None] tests/test_time.py::test_naturaldate[Not tests/test_time.py::test_naturaldate[test_input7-expected7] tests/test_time.py::test_naturaldate[test_input8-expected8] tests/test_time.py::test_naturaldate[test_input9-Feb tests/test_time.py::test_naturaldate[test_input17-Oct tests/test_time.py::test_naturaldate[test_input18-Nov tests/test_time.py::test_naturaldate[test_input19-Dec tests/test_time.py::test_naturaldate[test_input20-Jan tests/test_time.py::test_naturaldate[test_input21-today] tests/test_time.py::test_naturaldate[test_input22-Mar tests/test_time.py::test_naturaldate[test_input23-Apr tests/test_time.py::test_naturaldate[test_input24-May tests/test_time.py::test_naturaldate[test_input25-Jun tests/test_time.py::test_naturaldate[test_input26-Jul tests/test_time.py::test_naturaldate[test_input33-Feb tests/test_time.py::test_naturaldelta_minimum_unit_default[1e-06-a tests/test_time.py::test_naturaldelta_minimum_unit_default[4e-06-a tests/test_time.py::test_naturaldelta_minimum_unit_default[0.001-a tests/test_time.py::test_naturaldelta_minimum_unit_default[0.004-a tests/test_time.py::test_naturaldelta_minimum_unit_default[2-2 tests/test_time.py::test_naturaldelta_minimum_unit_default[4-4 tests/test_time.py::test_naturaldelta_minimum_unit_default[3600.004-an tests/test_time.py::test_naturaldelta_minimum_unit_default[86400.004-a tests/test_time.py::test_naturaldelta_minimum_unit_default[31557600.000004-a tests/test_time.py::test_naturaldelta_minimum_unit_explicit[seconds-1e-06-a tests/test_time.py::test_naturaldelta_minimum_unit_explicit[seconds-4e-06-a tests/test_time.py::test_naturaldelta_minimum_unit_explicit[seconds-0.001-a tests/test_time.py::test_naturaldelta_minimum_unit_explicit[seconds-0.004-a tests/test_time.py::test_naturaldelta_minimum_unit_explicit[seconds-2-2 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[seconds-4-4 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[seconds-3600.004-an tests/test_time.py::test_naturaldelta_minimum_unit_explicit[seconds-86400.004-a tests/test_time.py::test_naturaldelta_minimum_unit_explicit[seconds-31557600.000004-a tests/test_time.py::test_naturaldelta_minimum_unit_explicit[microseconds-1e-06-1 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[microseconds-4e-06-4 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[microseconds-2-2 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[microseconds-4-4 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[microseconds-3600.004-an tests/test_time.py::test_naturaldelta_minimum_unit_explicit[microseconds-86400.004-a tests/test_time.py::test_naturaldelta_minimum_unit_explicit[microseconds-31557600.000004-a tests/test_time.py::test_naturaldelta_minimum_unit_explicit[milliseconds-0.001-1 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[milliseconds-0.004-4 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[milliseconds-2-2 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[milliseconds-4-4 tests/test_time.py::test_naturaldelta_minimum_unit_explicit[milliseconds-3600.004-an tests/test_time.py::test_naturaldelta_minimum_unit_explicit[milliseconds-31557600.000004-a tests/test_time.py::test_naturaltime_minimum_unit_default[1e-06-now] tests/test_time.py::test_naturaltime_minimum_unit_default[4e-06-now] tests/test_time.py::test_naturaltime_minimum_unit_default[0.001-now] tests/test_time.py::test_naturaltime_minimum_unit_default[0.004-now] tests/test_time.py::test_naturaltime_minimum_unit_default[2-2 tests/test_time.py::test_naturaltime_minimum_unit_default[4-4 tests/test_time.py::test_naturaltime_minimum_unit_default[3600.004-an tests/test_time.py::test_naturaltime_minimum_unit_default[86400.004-a tests/test_time.py::test_naturaltime_minimum_unit_default[31557600.000004-a tests/test_time.py::test_naturaltime_minimum_unit_explicit[seconds-1e-06-now] tests/test_time.py::test_naturaltime_minimum_unit_explicit[seconds-4e-06-now] tests/test_time.py::test_naturaltime_minimum_unit_explicit[seconds-0.001-now] tests/test_time.py::test_naturaltime_minimum_unit_explicit[seconds-0.004-now] tests/test_time.py::test_naturaltime_minimum_unit_explicit[seconds-2-2 tests/test_time.py::test_naturaltime_minimum_unit_explicit[seconds-4-4 tests/test_time.py::test_naturaltime_minimum_unit_explicit[seconds-3600.004-an tests/test_time.py::test_naturaltime_minimum_unit_explicit[seconds-86400.004-a tests/test_time.py::test_naturaltime_minimum_unit_explicit[seconds-31557600.000004-a tests/test_time.py::test_naturaltime_minimum_unit_explicit[microseconds-1e-06-1 tests/test_time.py::test_naturaltime_minimum_unit_explicit[microseconds-4e-06-4 tests/test_time.py::test_naturaltime_minimum_unit_explicit[microseconds-2-2 tests/test_time.py::test_naturaltime_minimum_unit_explicit[microseconds-4-4 tests/test_time.py::test_naturaltime_minimum_unit_explicit[microseconds-3600.004-an tests/test_time.py::test_naturaltime_minimum_unit_explicit[microseconds-86400.004-a tests/test_time.py::test_naturaltime_minimum_unit_explicit[microseconds-31557600.000004-a tests/test_time.py::test_naturaltime_minimum_unit_explicit[milliseconds-0.001-1 tests/test_time.py::test_naturaltime_minimum_unit_explicit[milliseconds-0.004-4 tests/test_time.py::test_naturaltime_minimum_unit_explicit[milliseconds-2-2 tests/test_time.py::test_naturaltime_minimum_unit_explicit[milliseconds-4-4 tests/test_time.py::test_naturaltime_minimum_unit_explicit[milliseconds-3600.004-an tests/test_time.py::test_naturaltime_minimum_unit_explicit[milliseconds-31557600.000004-a
src/humanize/time.py
src/humanize/time.py