summaryrefslogtreecommitdiff
path: root/src/utils.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.clj')
-rwxr-xr-xsrc/utils.clj21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/utils.clj b/src/utils.clj
index a332898..c1a998c 100755
--- a/src/utils.clj
+++ b/src/utils.clj
@@ -157,14 +157,21 @@
(defn pluralize [word val]
(if (= val 1) word (str word "s")))
+(defn build-interval-table [i]
+ [[(.getYears i) "year" ]
+ [(.getMonths i) "month" ]
+ [(.getDays i) "day" ]
+ [(.getHours i) "hour" ]
+ [(.getMinutes i) "minute"]])
+
+(defn format-friendly-interval [i]
+ (if-let [[val unit] (first
+ (filter #(> (first %) 0)
+ (build-interval-table i)))]
+ (format "%s %s" (inc val) (pluralize unit (inc val)))))
+
(defn format-interval [i]
- (let [vals [(.getYears i)
- (.getMonths i)
- (.getDays i)
- (.getHours i)
- (.getMinutes i)]
- labels ["year" "month" "day" "hour" "minute"]
- arr (into [] (for [[l v] (map vector labels vals) :when (> v 0)]
+ (let [arr (into [] (for [[v l] (build-interval-table i) :when (> v 0)]
(str v " " (pluralize l v))))]
(str-join ", " arr)))