diff --git a/src/Humanizer.Tests.Shared/DateOnlyHumanizeTests.cs b/src/Humanizer.Tests.Shared/DateOnlyHumanizeTests.cs index bb9c0771f..507e03d3b 100644 --- a/src/Humanizer.Tests.Shared/DateOnlyHumanizeTests.cs +++ b/src/Humanizer.Tests.Shared/DateOnlyHumanizeTests.cs @@ -53,6 +53,21 @@ public void DefaultStrategy_DaysAgo() Assert.Equal(expectedResult, actualResult); } + [Fact] + public void DefaultStrategy_YearsAgo() + { + Configurator.DateOnlyHumanizeStrategy = new DefaultDateOnlyHumanizeStrategy(); + + var baseDate = DateTime.Now; + var inputTime = DateOnly.FromDateTime(baseDate.AddMonths(-24)); + var baseTime = DateOnly.FromDateTime(baseDate); + + const string expectedResult = "2 years ago"; + var actualResult = inputTime.Humanize(baseTime); + + Assert.Equal(expectedResult, actualResult); + } + [Fact] public void PrecisionStrategy_NextDay() { diff --git a/src/Humanizer/DateTimeHumanizeStrategy/DateTimeHumanizeAlgorithms.cs b/src/Humanizer/DateTimeHumanizeStrategy/DateTimeHumanizeAlgorithms.cs index fb34cf7c7..25cec7f5f 100644 --- a/src/Humanizer/DateTimeHumanizeStrategy/DateTimeHumanizeAlgorithms.cs +++ b/src/Humanizer/DateTimeHumanizeStrategy/DateTimeHumanizeAlgorithms.cs @@ -155,12 +155,12 @@ public static string DefaultHumanize(DateTime input, DateTime comparisonBase, Cu public static string DefaultHumanize(DateOnly input, DateOnly comparisonBase, CultureInfo culture) { var tense = input > comparisonBase ? Tense.Future : Tense.Past; - var diffDays = Math.Abs(comparisonBase.DayOfYear - input.DayOfYear); + var diffDays = Math.Abs(comparisonBase.DayNumber - input.DayNumber); var ts = new TimeSpan(diffDays, 0, 0, 0); var sameMonth = comparisonBase.AddMonths(tense == Tense.Future ? 1 : -1) == input; - var days = Math.Abs(input.DayOfYear - comparisonBase.DayOfYear); + var days = Math.Abs(input.DayNumber - comparisonBase.DayNumber); return DefaultHumanize(ts, sameMonth, days, tense, culture); }