(ns auto-ap.time-utils (:require #?(:clj [clj-time.core :as time] :cljs [cljs-time.core :as time]) #?(:cljs [cljs-time.format :as format] :clj [clj-time.format :as format]))) (def pretty (format/formatter "MM/dd/yyyy")) (defn user-friendly-date [d] (some->> d (format/unparse pretty))) (defn next-dom [date dom] (when date (let [candidate (time/date-time (time/year date) (time/month date) #?(:clj (Math/min (int dom) (time/day (time/last-day-of-the-month (time/year date) (time/month date)))) :cljs (Math/min dom (time/day (time/last-day-of-the-month (time/year date) (time/month date))))))] (if (time/before? candidate date) (time/plus candidate (time/months 1)) candidate))))