Порівняння двох дат

Haskell:
Порівняння двох дат

Як це зробити:

import Data.Time

-- Порівнюємо дві дати
compareDates :: IO ()
compareDates = do
    let date1 = fromGregorian 2023 3 15 -- 15 березня 2023
    let date2 = fromGregorian 2023 10 19 -- 19 жовтня 2023
    let comparisonResult = compare date1 date2
    printResult comparisonResult

-- Друкуємо результат порівняння
printResult :: Ordering -> IO ()
printResult GT = putStrLn "Перша дата пізніше другої."
printResult LT = putStrLn "Перша дата раніше другої."
printResult EQ = putStrLn "Дати однакові."

main :: IO ()
main = compareDates

Виведення:

Перша дата раніше другої.

Поглиблений аналіз:

У Haskell, порівняння дат засноване на типі UTCTime з пакету time, який вже давно є стандартом для обробки часу і дат. Альтернативи включають сторонні бібліотеки як thyme чи chronos, але time найчастіше за все вповні покриває потреби розробників.

Функція fromGregorian використовує Григоріанський календар, dominantly used since 1582, and the compare function can directly compare two dates. The result is of the type Ordering, with possible values GT (greater than), LT (less than), or EQ (equal to).

Детальнішу інформацію про обробку дат і часу в Haskell можна знайти в офіційній документації пакету time.

Додатково: