Haskell:
Porównywanie dwóch dat
How to:
Do porównania dat w Haskellu możemy użyć modułu Data.Time
. Oto przykład:
import Data.Time
compareDates :: IO ()
compareDates = do
let date1 = fromGregorian 2023 3 15 -- 15 marzec 2023
let date2 = fromGregorian 2023 4 1 -- 1 kwiecień 2023
print $ compare date1 date2 -- LT
print $ date1 < date2 -- True
print $ date1 == date2 -- False
print $ date1 > date2 -- False
main :: IO ()
main = compareDates
Deep Dive
Porównywanie dat to klasyczne zadanie. W Haskellu, Data.Time
jest standardowym modułem do zarządzania czasem, który dostarcza m.in. typ Day
dla dat bez czasu. Alternatywnie, możemy użyć Data.Calendar
lub zewnętrzne biblioteki jak time
czy chronos
. Ważne jest, że Day
ma instancję klasy Ord
, co umożliwia używanie <
, >
czy ==
do porównywania.