Kahden päivämäärän vertailu

Elm:
Kahden päivämäärän vertailu

Kuinka:

import Time exposing (Posix)
import Date

-- Päivämäärän luominen
date1 : Date.Date
date1 = Date.fromIsoString "2023-03-21" |> Result.withDefault Date.zero -- HUOM: Käsittele Result paremmin todellisissa projekteissa

date2 : Date.Date
date2 = Date.fromIsoString "2023-03-25" |> Result.withDefault Date.zero -- HUOM: Käsittele Result paremmin todellisissa projekteissa

-- Päivämäärän vertailu
compareDates : Date.Date -> Date.Date -> Basics.Order
compareDates d1 d2 =
    Date.compare d1 d2

-- Esimerkkitulostus
compareExample : String
compareExample =
    case compareDates date1 date2 of
        LT -> "Ensimmäinen päivämäärä on aikaisempi."
        EQ -> "Päivämäärät ovat samat."
        GT -> "Toinen päivämäärä on aikaisempi."

-- Tulostaa: "Ensimmäinen päivämäärä on aikaisempi."

Syväsukellus

Elmissä päivämäärien vertailu ei ole yhtä suoraviivaista kuin joissain muissa kielissä, johtuen kielisuunnittelusta, joka suosii puhtautta ja turvallisuutta. Date-moduuli esimerkiksi palauttaa Result-tyypin, joka pakottaa käsittelyyn virhetilanteet. Historiallisesti Elm on kehittynyt sellaiseksi, jossa “time-travel debugger” on ollut ainutlaatuinen ominaisuus, mikä vaikutti siihen, miten aikaa ja päivämääriä käsitellään. Vaihtoehtoja sisäänrakennetulle Date-moduulille löytyy yhteisön tekemistä paketeista, kuten elm-time ja justinmimbs/date, jotka tarjoavat lisätoiminnallisuuksia.

Katso Myös