2014-11-25 21 views
8

Có gì mới đối với clojure, bất kỳ ai cũng có thể giúp tôi hiểu làm thế nào tôi có thể có được ngày hiện tại trong clojure và sau đó thêm ngày vào nó? ví dụ: thêm 3 ngày vào ngày hiện tại?Thêm ngày vào ngày hiện tại

Trả lời

7

Các thành ngữ Clojure cách là sử dụng clj-time (xem liên kết cho Leiningen/Maven cài đặt hướng dẫn), mà kết thúc tốt đẹp Joda thời gian như được tham chiếu bởi câu trả lời đầu tiên từ 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> 
4

Đây không phải là câu trả lời dành riêng cho Clojure, thực sự, nhưng tôi muốn sử dụng Joda time.

(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>] 
+0

Bạn có thể đặt Clojure cụ thể bằng cách trỏ vào trình bao bọc 'clj-time' khoảng thời gian Joda. :) – xsc

+0

@xsc Đủ công bằng. Có vẻ như một người khác đã cung cấp câu trả lời như vậy. – overthink

+0

Câu trả lời/thực sự/có yêu cầu downvote không? Có thể downvoter xin giải thích? – overthink

1
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 
Các vấn đề liên quan