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}";
         }