Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit a7dc246

Browse files
committed
Fix year size dyslexia
1 parent ebc4477 commit a7dc246

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

src/GitHub.UI/Converters/DurationToStringConverter.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class DurationToStringConverter : ValueConverterMarkupExtension<DurationT
77
{
88
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
99
{
10-
const int year = 356;
10+
const int year = 365;
1111
const int month = 30;
1212
const int day = 24;
1313
const int hour = 60;
@@ -17,16 +17,18 @@ public override object Convert(object value, Type targetType, object parameter,
1717
if (value is TimeSpan)
1818
duration = (TimeSpan)value;
1919
else if (value is DateTime)
20-
duration = DateTime.Now - (DateTime)value;
20+
duration = DateTime.UtcNow - (DateTime)value;
2121
else if (value is DateTimeOffset)
22-
duration = DateTimeOffset.Now - (DateTimeOffset)value;
22+
duration = DateTimeOffset.UtcNow - (DateTimeOffset)value;
2323
else
2424
return value;
2525

2626
if (duration.TotalDays >= year)
2727
return string.Format(culture, (int)(duration.TotalDays / year) > 1 ? Resources.years : Resources.year, (int)(duration.TotalDays / year));
28+
else if (duration.TotalDays >= 360)
29+
return string.Format(culture, Resources.months, 11);
2830
else if (duration.TotalDays >= month)
29-
return string.Format(culture, (int)(duration.TotalDays / month) > 1 ? Resources.months : Resources.month, (int)(duration.TotalDays / month));
31+
return string.Format(culture, (int)(duration.TotalDays / (month)) > 1 ? Resources.months : Resources.month, (int)(duration.TotalDays / (month)));
3032
else if (duration.TotalHours >= day)
3133
return string.Format(culture, (int)(duration.TotalHours / day) > 1 ? Resources.days : Resources.day, (int)(duration.TotalHours / day));
3234
else if (duration.TotalMinutes >= hour)

src/UnitTests/GitHub.UI/Converters.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ public class Converters
2727
[InlineData(0, 0, 0, 30, "1 month ago")]
2828
[InlineData(0, 0, 0, 59, "1 month ago")]
2929
[InlineData(0, 0, 0, 60, "2 months ago")]
30-
[InlineData(0, 0, 0, 355, "11 months ago")]
31-
[InlineData(0, 0, 0, 356, "1 year ago")]
32-
[InlineData(0, 0, 0, 356*2-1, "1 year ago")]
33-
[InlineData(0, 0, 0, 356*2, "2 years ago")]
30+
[InlineData(0, 0, 0, 364, "11 months ago")]
31+
[InlineData(0, 0, 0, 365, "1 year ago")]
32+
[InlineData(0, 0, 0, 365*2-1, "1 year ago")]
33+
[InlineData(0, 0, 0, 365*2, "2 years ago")]
3434
public void TimespanConversion(int sec, int min, int hou, int day, string expected)
3535
{
3636
var ts = new TimeSpan(day, hou, min, sec);

0 commit comments

Comments
 (0)