Size: a a a

Clojure — русскоговорящее сообщество

2020 April 21

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Sergey Trofimov
я подставлял (java.time.Instant/now) в твой код
А если дата из будущего сравнивается?
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
(sort (fn [a b]
       (cond
         (nil? a) -1
         (nil? b) 1
         :else (compare b a)))
     [5 nil 1 3 0])

Как
-то элегантнее можно?
Нулы отфильтровать, отсортировать, потом нулы добавить
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
А если дата из будущего сравнивается?
неважно, он не понял Instant
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
аа
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
а этот код уже я не понял 😊
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Sergey Trofimov
а этот код уже я не понял 😊
У меня даты лежат в массиве [{:period {:end "2020-02-02", ...}, ...}, ...]
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
У меня даты лежат в массиве [{:period {:end "2020-02-02", ...}, ...}, ...]
"2020-02-02" это не даты, а строки
если формат исошный, то можно сравнивать как строки, не оцифровывая
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
хм
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Мне слишком весело, так что вот v2.0:
(reverse (sort-by (fn [x] [(if x 0 1) x])
 [#inst "2023"
  nil
  #inst "2021"
  #inst "2020"
  nil
  #inst "2017"]))
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Точно
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Pavel Peganov
Мне слишком весело, так что вот v2.0:
(reverse (sort-by (fn [x] [(if x 0 1) x])
 [#inst "2023"
  nil
  #inst "2021"
  #inst "2020"
  nil
  #inst "2017"]))
да, умением пользоваться литералами я не блещу 😊
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Sergey Trofimov
да, умением пользоваться литералами я не блещу 😊
Да норм. Я толком не умею пользоваться самой кложей %)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
хотя #inst "2021" даёт java.util.Date, что не очень...
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
(sort-by (fnil identity "9999") #(compare %2 %1) ["2001" "2002" "2003" nil])
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
Всем привет. А как в кложе по-нормальному дату валидировать?
Я сейчас делаю вот так, https://pastebin.com/2Xqh9AMb, но он пропускает невалидные даты, типа 2020.02.31
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
(defn valid-date? [date]
 (try (let [format (java.time.format.DateTimeFormatter/ofPattern "yyyy.MM.dd")]
      (java.time.LocalDate/parse date format)
      true)
    (catch java.time.format.DateTimeParseException e
      false)))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Алишер Маткурбанов
Всем привет. А как в кложе по-нормальному дату валидировать?
Я сейчас делаю вот так, https://pastebin.com/2Xqh9AMb, но он пропускает невалидные даты, типа 2020.02.31
«он пропускает невалидные даты, типа 2020.02.31»
сурово...
источник

АМ

Алишер Маткурбанов in Clojure — русскоговорящее сообщество
вроде как он ее превратит в 2020.02.28 но кажется это как-то старнно
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Алишер Маткурбанов
Всем привет. А как в кложе по-нормальному дату валидировать?
Я сейчас делаю вот так, https://pastebin.com/2Xqh9AMb, но он пропускает невалидные даты, типа 2020.02.31
ну тогда раскладывай строку на цифры и скармливай (java.time.LocalDate/of 2020 02 31)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Алишер Маткурбанов
вроде как он ее превратит в 2020.02.28 но кажется это как-то старнно
"2020-02-29" 😊
источник