47 lines
1.5 KiB
Clojure
47 lines
1.5 KiB
Clojure
#!/usr/bin/env bb
|
|
|
|
|
|
(require '[babashka.deps :as deps])
|
|
(deps/add-deps
|
|
'{:deps {io.github.lispyclouds/bblgum {:git/sha "1d4de3d49b84f64d1b71930fa1161f8d2622a4d9"}
|
|
dev.andylu/clj-lipgloss {:local/root "/home/andy/git/clj-lipgloss"}
|
|
com.widdindustries/cljc.java-time {:mvn/version "0.1.21"}}})
|
|
|
|
|
|
(ns dev.andylu.journal-output
|
|
(:require [bblgum.core :as b]
|
|
[clj-lipgloss.core :as lg
|
|
:use [log]]
|
|
[cljc.java-time.local-date :as ld]
|
|
[cljc.java-time.temporal.chrono-unit :use [days]]))
|
|
|
|
|
|
(let [today (ld/now)
|
|
end-of-year (ld/of (. today getYear)
|
|
12
|
|
31)
|
|
span (-> (. today
|
|
until
|
|
end-of-year
|
|
days)
|
|
inc)
|
|
current-page (-> (b/gum :input :prompt "Current page: ")
|
|
:result
|
|
first
|
|
Integer/parseInt)
|
|
end-page 228
|
|
page-per-day (-> current-page
|
|
(+ (* -1 end-page))
|
|
(* -1)
|
|
inc
|
|
(/ (float span)))]
|
|
(log :info
|
|
(format "There are %s days between and including %s and %s"
|
|
span
|
|
today
|
|
end-of-year))
|
|
(log :info
|
|
(format "To get to page %s by the end of the year from %s, you have to write %s pages per day"
|
|
end-page
|
|
current-page
|
|
page-per-day)))
|