Elixir:
Confronto tra due date
How to:
# Creazione di date
date1 = ~D[2023-03-15]
date2 = ~D[2023-04-01]
# Confronto date
is_before = Date.compare(date1, date2) == :lt
is_same = Date.compare(date1, date2) == :eq
is_after = Date.compare(date1, date2) == :gt
# Output
IO.puts("date1 è prima di date2? #{is_before}") # date1 è prima di date2? true
IO.puts("date1 è la stessa di date2? #{is_same}") # date1 è la stessa di date2? false
IO.puts("date1 è dopo di date2? #{is_after}") # date1 è dopo di date2? false
Deep Dive
Elixir fornisce la Date.compare/2
per confrontare due date. La funzione ritorna :lt
(less than), :eq
(equal) o :gt
(greater than). Prima dell'1.3, confrontare le date era meno intuitivo e richiedeva più codice. Implementazioni alternative preesistenti erano spesso fatte tramite librerie esterne come Timex. Internamente, Date.compare/2
converte le date in valori integer e poi li confronta, permettendo un confronto efficiente e preciso.
See Also
- Documentazione ufficiale di Elixir sul modulo
Date
: https://hexdocs.pm/elixir/Date.html - Libreria Timex, per gestione avanzata del tempo in Elixir: https://hex.pm/packages/timex
- Guide introduttive a Elixir: https://elixir-lang.org/getting-started/introduction.html