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.

See Also