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)]
|
||||
(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]
|
||||
(let [days (quot (quot seconds 3600) 24)
|
||||
hours (quot seconds 3600)
|
||||
minutes (quot (- seconds (* hours 3600)) 60)
|
||||
seconds (mod seconds 60)]
|
||||
n (mod seconds (* 24 3600))
|
||||
hours (quot n 3600)
|
||||
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"
|
||||
(if (zero? days) "" (str days "d"))
|
||||
(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