Am Nouveau à Clojure, quelqu'un peut-il m'aider à comprendre comment puis-je obtenir la date actuelle dans le clojure, puis l'ajout de jours? par ex. Ajout de 3 jours à la date actuelle? P>
3 Réponses :
Ce n'est pas une réponse spécifique au clojure, mais j'utiliserais Joda Time A>. (import 'org.joda.time.DateTime)
(let [now (DateTime/now)
later (.plusDays now 3)]
[now later])
;; [#<DateTime 2014-11-24T23:26:05.885-05:00> #<DateTime 2014-11-27T23:26:05.885-05:00>]
Vous pouvez le rendre spécifique au clojure en pointant sur le CLJ-Time Code> Wrapper autour de Joda Time. :)
@XSC assez équitable. On dirait que quelqu'un d'autre a fourni une telle réponse.
Cette réponse / vraiment / nécessite-t-elle un bowvote? Le Downvoter pourrait-il s'il vous plaît expliquer?
user> (import '[java.util Calendar])
;=> java.util.Calendar
user> (defn days-later [n]
(let [today (Calendar/getInstance)]
(doto today
(.add Calendar/DATE n)
.toString)))
#'user/days-later
user> (println "Tomorrow: " (days-later 1))
;=> Tomorrow: #inst "2014-11-26T15:36:31.901+09:00"
;=> nil
user> (println "7 Days from now: " (days-later 7))
;=> 7 Days from now: #inst "2014-12-02T15:36:44.785+09:00"
;=> nil
Le moyen de clojure idiomatique est d'utiliser CLJ-Time (voir le lien pour Leiningen / Maven Instructions d'installation), qui enveloppe Joda Time comme référencé par la première réponse de Overthink .
user=> (use '[clj-time.core]) nil user=> (now) #<DateTime 2014-11-25T12:03:34.714Z> user=> (plus (now) (days 3)) #<DateTime 2014-11-28T12:05:40.888Z>