Elixir:
Kahden päivämäärän vertailu
How to:
Elixirissä päivämäärien vertailu on suoraviivaista, käytämme DateTime
-moduulia.
# Luo kaksi päivämäärä-tietuetta
dt1 = ~N[2023-04-15 14:00:00]
dt2 = ~N[2023-04-18 14:00:00]
# Vertailu käyttäen DateTime.compare/2
result = DateTime.compare(dt1, dt2)
# Tarkistaa, onko ensimmäinen päivämäärä aikaisempi
if result == :lt do
IO.puts "Ensimmäinen päivämäärä on aikaisempi."
else
IO.puts "Toinen päivämäärä on aikaisempi tai päivämäärät ovat samat."
end
Esimerkkiajoitus palauttaisi:
"Ensimmäinen päivämäärä on aikaisempi."
Deep Dive
Elixirin DateTime
-moduuli tuli käyttöön Elixir 1.3 -versiossa osana standardikirjastoa. Se tekee päivämäärien ja ajan käsittelystä tarkkaa ja joustavaa. Vaihtoehtoisesti voitaisiin käyttää kolmannen osapuolen kirjastoja kuten Timex
, mutta vakiona tulevat työkalut riittävät useimpiin tarpeisiin.
Vertailtaessa päivämääriä, Elixir suhteuttaa ne UTC-aikaan, mikä tarkoittaa, että aikavyöhykkeiden vaikutukset tulee ottaa huomioon. DateTime.compare/2
on suoraviivainen ja palauttaa joko :lt
(less than, vähemmän kuin), :gt
(greater than, enemmän kuin) tai :eq
(equal, samat), joka ilmaisee päivämäärien suhteellisen järjestyksen.
See Also
- Elixirin virallinen dokumentaatio
DateTime
: https://hexdocs.pm/elixir/DateTime.html - Keskustelu päivämäärien vertailun parhaista käytännöistä ElixirForumissa: https://elixirforum.com
Timex
-kirjaston dokumentaatio, monipuolisempaa päivämäärä- ja aikakäsittelyä varten: https://hex.pm/packages/timex