Elixir:
Porównywanie dwóch dat

How to:

W Elixirze porównujemy daty używając modułu DateTime. Spójrz:

date1 = ~N[2023-03-14 14:00:00]
date2 = ~N[2023-03-15 14:00:00]

# Sprawdzamy, czy date1 jest wcześniejsza
IO.puts(DateTime.compare(date1, date2) == :lt)  # Wypisze 'true'

# Sprawdzamy, czy daty są identyczne
IO.puts(DateTime.compare(date1, date1) == :eq)  # Wypisze 'true'

# Pobieramy różnicę w sekundach między date1 i date2
difference = DateTime.diff(date2, date1)
IO.puts(difference)  # Wypisze '86400', co odpowiada jednemu dniu

Proste? Proste.

Deep Dive

Porównywanie dat to stary jak świat problem, ale moduły takie jak DateTime w Elixirze to rozwiązują elegancko. Kiedyś bazowano na bardziej prymitywnych funkcjach, ale postęp języków programowania wspiera twórców w dostarczaniu coraz bardziej wyrafinowanych rozwiązań.

Alternatywy? Możesz użyć NaiveDateTime dla prostszych przypadków, gdzie strefy czasowe nie grają roli. Jeśli potrzebujesz większej precyzji, kieruj się ku Time dla samej godziny, minuty itp.

Implementacja porównywania dat w Elixirze opiera się na liczbach całkowitych, liczonych jako milisekundy od pewnej epoki (Unix Epoch), co pozwala uniknąć pułapek związanych z precyzją liczb zmienno-przecinkowych.

See Also

Sprawdź także:

Szukaj inspiracji w dokumentacji i grzeb w kodzie – to najlepsza nauka.