Представление только «года» и «года-месяца» в Clojure/JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Представление только «года» и «года-месяца» в Clojure/Java

Сообщение Anonymous »

Я пытаюсь представить информацию времени с точностью в масштабе год или год-месяц. Например. 'у пациента в анамнезе был перелом правого запястья в 1998'; «история головных болей с октября 2015 года».

Я посмотрел на Joda-Time, у которого есть YearMonth org.joda.time.YearMonth, но не только «Год». Но даже YearMonth кажется отключенным. Например,

Код: Выделить всё

(clj-time.core/year-month 2015 02)
(clj-time.core/date-time  2015 11 15)

=> #object[org.joda.time.YearMonth 0x7a19d121 "2015-02"]
=> #object[org.joda.time.DateTime 0x5625de93 "2015-11-15T00:00:00.000Z"]
и вы можете выполнять некоторые операции, такие как:

Код: Выделить всё

(clj-time.core/month (clj-time.core/year-month 2015 02))
(clj-time.core/month (clj-time.core/date-time  2015 11 15))

=> 2
=> 11
но не это:

Код: Выделить всё

(clj-time.core/before? (clj-time.core/year-month 2015 02)
(clj-time.core/date-time  2015 11 15))

=> Exception thrown: java.lang.ClassCastException (org.joda.time.DateTime
cannot be cast to org.joda.time.ReadablePartial)
и аналогичные результаты с java.time:

Код: Выделить всё

(.compareTo (java.time.Year/of 2007) (java.time.LocalDate/now))

=> Exception thrown: java.lang.ClassCastException (java.time.LocalDate
cannot be cast to java.time.Year)
Я хочу иметь возможность представлять временные объекты, такие как Year и YearMonth, с той точностью, с какой они есть - не больше и не меньше, а также выполнять с ними математические операции с датами. Например:
  • Год 1998 будет представлен как интервал от «01 января 1998 года» до «31 декабря 1998 года», а октябрь 2015 года как от «01 октября 2015 года» до «31 октября 2015 года».
  • И уметь сравнивать и выполнять другие операции с этими временными объектами.
Кто-нибудь нашел хорошее решение этой проблемы? Или мне следует подумать о создании собственного решения/библиотеки?

Подробнее здесь: https://stackoverflow.com/questions/342 ... ojure-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»