Use Danish number formatting for all prices and rates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
[io.undertow.websockets.core AbstractReceiveListener WebSockets WebSocketChannel]
|
[io.undertow.websockets.core AbstractReceiveListener WebSockets WebSocketChannel]
|
||||||
[java.time Instant ZoneId]
|
[java.time Instant ZoneId]
|
||||||
[java.time.format DateTimeFormatter]
|
[java.time.format DateTimeFormatter]
|
||||||
|
[java.util Locale]
|
||||||
[java.util.concurrent LinkedBlockingQueue TimeUnit]))
|
[java.util.concurrent LinkedBlockingQueue TimeUnit]))
|
||||||
|
|
||||||
(defn- price->json [{:keys [price prev-price recorded-at]} rates]
|
(defn- price->json [{:keys [price prev-price recorded-at]} rates]
|
||||||
@@ -27,6 +28,10 @@
|
|||||||
:price_dkk (str (.multiply (bigdec price) (:dkk rates)))))))
|
:price_dkk (str (.multiply (bigdec price) (:dkk rates)))))))
|
||||||
|
|
||||||
(def ^:private ts-fmt (DateTimeFormatter/ofPattern "dd-MM HH:mm:ss"))
|
(def ^:private ts-fmt (DateTimeFormatter/ofPattern "dd-MM HH:mm:ss"))
|
||||||
|
(def ^:private da-locale (Locale. "da" "DK"))
|
||||||
|
|
||||||
|
(defn- da-fmt [fmt val]
|
||||||
|
(String/format da-locale fmt (into-array Object [val])))
|
||||||
|
|
||||||
(defn- price->html [{:keys [price prev-price recorded-at]} rates]
|
(defn- price->html [{:keys [price prev-price recorded-at]} rates]
|
||||||
(let [p (double (bigdec price))
|
(let [p (double (bigdec price))
|
||||||
@@ -40,19 +45,19 @@
|
|||||||
(str "<div id=\"price-display\">"
|
(str "<div id=\"price-display\">"
|
||||||
"<div class=\"bg-white rounded-2xl shadow-sm border border-gray-200 p-6\">"
|
"<div class=\"bg-white rounded-2xl shadow-sm border border-gray-200 p-6\">"
|
||||||
"<div class=\"text-center\">"
|
"<div class=\"text-center\">"
|
||||||
"<p class=\"text-4xl font-bold " color "\">$" (format "%,.2f" p) "</p>"
|
"<p class=\"text-4xl font-bold " color "\">$" (da-fmt "%,.2f" p) "</p>"
|
||||||
(when rates
|
(when rates
|
||||||
(let [eur (double (:eur rates))
|
(let [eur (double (:eur rates))
|
||||||
dkk (double (:dkk rates))
|
dkk (double (:dkk rates))
|
||||||
p-eur (double (.multiply (bigdec price) (:eur rates)))
|
p-eur (double (.multiply (bigdec price) (:eur rates)))
|
||||||
p-dkk (double (.multiply (bigdec price) (:dkk rates)))]
|
p-dkk (double (.multiply (bigdec price) (:dkk rates)))]
|
||||||
(str "<div class=\"flex justify-center gap-4 mt-3\">"
|
(str "<div class=\"flex justify-center gap-4 mt-3\">"
|
||||||
"<span class=\"text-2xl font-bold text-gray-600\">\u20AC" (format "%,.2f" p-eur) "</span>"
|
"<span class=\"text-2xl font-bold text-gray-600\">\u20AC" (da-fmt "%,.0f" p-eur) "</span>"
|
||||||
"<span class=\"text-2xl font-bold text-gray-600\">" (format "%,.2f" p-dkk) " kr</span>"
|
"<span class=\"text-2xl font-bold text-gray-600\">" (da-fmt "%,.0f" p-dkk) " kr</span>"
|
||||||
"</div>"
|
"</div>"
|
||||||
"<div class=\"flex justify-center gap-4 mt-1\">"
|
"<div class=\"flex justify-center gap-4 mt-1\">"
|
||||||
"<span class=\"text-xs text-gray-400\">EUR/USD " (format "%.4f" eur) "</span>"
|
"<span class=\"text-xs text-gray-400\">EUR/USD " (da-fmt "%.4f" eur) "</span>"
|
||||||
"<span class=\"text-xs text-gray-400\">DKK/USD " (format "%.4f" dkk) "</span>"
|
"<span class=\"text-xs text-gray-400\">DKK/USD " (da-fmt "%.4f" dkk) "</span>"
|
||||||
"</div>")))
|
"</div>")))
|
||||||
"<p class=\"text-xs text-gray-400 mt-2\">Updated " ts "</p>"
|
"<p class=\"text-xs text-gray-400 mt-2\">Updated " ts "</p>"
|
||||||
"</div></div></div>")))
|
"</div></div></div>")))
|
||||||
|
|||||||
Reference in New Issue
Block a user