mirror of https://github.com/logseq/logseq
fix total time calculation (#7238)
* fix total time calculation * Added tests for clock conversionpull/7198/head^2
parent
a8a628770c
commit
94d868ca7f
|
@ -21,12 +21,21 @@
|
||||||
seconds (mod seconds 60)]
|
seconds (mod seconds 60)]
|
||||||
(util/format "%02d:%02d:%02d" hours minutes seconds)))
|
(util/format "%02d:%02d:%02d" hours minutes seconds)))
|
||||||
|
|
||||||
(defn seconds->days:hours:minutes:seconds
|
(defn s->dhms-util
|
||||||
|
"A function that returns the values for easier testing.
|
||||||
|
Always in the order [days, hours, minutes, seconds]"
|
||||||
[seconds]
|
[seconds]
|
||||||
(let [days (quot (quot seconds 3600) 24)
|
(let [days (quot (quot seconds 3600) 24)
|
||||||
hours (quot seconds 3600)
|
n (mod seconds (* 24 3600))
|
||||||
minutes (quot (- seconds (* hours 3600)) 60)
|
hours (quot n 3600)
|
||||||
seconds (mod seconds 60)]
|
n (mod n 3600)
|
||||||
|
minutes (quot n 60)
|
||||||
|
secs (mod n 60)]
|
||||||
|
[days hours minutes secs]))
|
||||||
|
|
||||||
|
(defn seconds->days:hours:minutes:seconds
|
||||||
|
[seconds]
|
||||||
|
(let [[days hours minutes seconds] (s->dhms-util seconds)]
|
||||||
(util/format "%s%s%s%s"
|
(util/format "%s%s%s%s"
|
||||||
(if (zero? days) "" (str days "d"))
|
(if (zero? days) "" (str days "d"))
|
||||||
(if (zero? hours) "" (str hours "h"))
|
(if (zero? hours) "" (str hours "h"))
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
(ns frontend.util.clocktime-test
|
||||||
|
(:require [cljs.test :refer [deftest is]]
|
||||||
|
[frontend.util.clock :as clock]))
|
||||||
|
|
||||||
|
|
||||||
|
(deftest test-seconds->days:hours:minutes:seconds
|
||||||
|
(let [inputs [0, 1, 10, 60, 123 ,5432, 63953, 484882, 2394503]
|
||||||
|
want [[0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 1],
|
||||||
|
[0, 0, 0, 10],
|
||||||
|
[0, 0, 1, 0],
|
||||||
|
[0, 0, 2, 3],
|
||||||
|
[0, 1, 30, 32],
|
||||||
|
[0, 17, 45, 53],
|
||||||
|
[5, 14, 41, 22],
|
||||||
|
[27, 17, 8, 23]]]
|
||||||
|
(map #(is (= (clock/s->dhms-util %1) %2)) inputs want)))
|
Loading…
Reference in New Issue