diff --git a/ATxCommon/TimeUtils.cs b/ATxCommon/TimeUtils.cs index 1cc9d94ec7485e03dd65d52f5891ae7697e51c71..b958db1eb6633dfa858b8d679a525251aa076105 100644 --- a/ATxCommon/TimeUtils.cs +++ b/ATxCommon/TimeUtils.cs @@ -73,9 +73,29 @@ namespace ATxCommon if (delta < 2 * month) return $"{delta / week} weeks {desc}"; - // TODO: make the remaining options more flexible (like "< day" above) - if (delta < year) - return $"{delta / month} monts {desc}"; + if (delta < year) { + var months = delta / month; + var weeks = (delta - months * month) / week; + var days = ((delta - months * month) - weeks * week) / day; + var ret = $"{months} months"; + if (weeks > 0) + ret += $" {weeks} weeks"; + if (days > 0) + ret += $" {days} days"; + return $"{ret} {desc}"; + } + + if (delta < 10 * year) { + var years = delta / year; + var months = (delta - years * year) / month; + var days = ((delta - years * year) - months * month) / day; + var ret = $"{years} years"; + if (months > 0) + ret += $" {months} months"; + if (days > 0) + ret += $" {days} days"; + return $"{ret} {desc}"; + } return $"{delta / year} years {desc}"; }