Elm:
Порівняння двох дат
How to: (Як робити:)
import Time exposing (Posix)
import Date
compareDates : Posix -> Posix -> Order
compareDates date1 date2 =
if date1 < date2 then
LT
else if date1 > date2 then
GT
else
EQ
-- Приклад використання:
date1 : Posix
date1 =
Date.fromIsoString "2023-03-01T00:00:00Z" |> Result.withDefault (Date.fromTime 0)
date2 : Posix
date2 =
Date.fromIsoString "2023-04-01T00:00:00Z" |> Result.withDefault (Date.fromTime 0)
result : Order
result = compareDates date1 date2
-- result буде LT, оскільки date1 раніше ніж date2
Deep Dive (Поглиблений аналіз)
У минулому, дати порівнювали, використовуючи календарі і математику. Сьогодні, ми використовуємо комп’ютерні часові мітки (Posix у Elm), які дозволяють точно порівняти дати. Є альтернативи Elm, наприклад JavaScript’s Date
, але Elm пропонує імутабельність і надійність. Деталі реалізації: Posix
- це кількість мілісекунд з півночі 1 січня 1970 UTC, в Elm його зазвичай отримують з Date
.