From 2e53842febf0e77d659d09b5ccaaf2da48852293 Mon Sep 17 00:00:00 2001
From: Niko Ehrenfeuchter <nikolaus.ehrenfeuchter@unibas.ch>
Date: Sun, 11 Feb 2018 23:14:45 +0100
Subject: [PATCH] Make deltas above two months more detailed.

Refers to #24
---
 ATxCommon/TimeUtils.cs | 26 +++++++++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/ATxCommon/TimeUtils.cs b/ATxCommon/TimeUtils.cs
index 1cc9d94..b958db1 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}";
         }
-- 
GitLab