我有一个函数,它基本上包含一个日期字符串和添加到给定日期字符串的天数
(defn add-period [date-string d]
(t/plus (tf/parse (tf/formatter "yyyy-MM-dd") date-string) (t/days d)))
我们称之为函数
(add-period "2014-05-12" 7)
;=> #object[org.joda.time.DateTime 0x2002348 2014-05-19T00:00:00.000Z]
(add-period "2014-05-12" -7)
;=> #object[org.joda.time.DateTime 0x2002348 2014-05-5T00:00:00.000Z]
(add-period "2014-05-12" 365)
;=> #object[org.joda.time.DateTime 0x2002348 2015-05-5T00:00:00.000Z]
但我也想这样做:
(add-period "2014-05-12" 0.5)
0.5将增加半天,而0.956将增加(57分36秒)
如果函数被重构以适应这种用例,我将不胜感激
我认为有人对此提出了一个问题:
答案 0 :(得分:2)
您可以使用毫秒。 E.g:
$ lein try clj-time 0.11.0
...
user=> (require '[clj-time.core :as t])
nil
user=> (import 'org.joda.time.DateTimeConstants)
org.joda.time.DateTimeConstants
user=> (t/plus (t/date-time 2015 8 21) (t/millis (* 0.5 (DateTimeConstants/MILLIS_PER_DAY))))
#<DateTime 2015-08-21T12:00:00.000Z>
user=> (t/plus (t/date-time 2015 8 21) (t/millis (* 0.956 (DateTimeConstants/MILLIS_PER_DAY))))
#<DateTime 2015-08-21T22:56:38.400Z>