Haskell:
Sammenlikning av to datoer

Slik gjør du:

Haskell bruker Data.Time biblioteket for datooperasjoner. Her er et eksempel på hvordan sammenligne to datoer:

import Data.Time

compareDates :: IO ()
compareDates = do
  let date1 = fromGregorian 2023 3 25  -- År, Måned, Dag
      date2 = fromGregorian 2023 4 1
  print $ compare date1 date2         -- Output: LT

-- 'LT' betyr at første dato er mindre (tidligere) enn den andre.
-- 'GT' vil bety det motsatte, og 'EQ' viser at datoene er like.

Kjør denne funksjonen og se hva som skjer!

Dypdykk

Historisk sett har datoer og tid vært kompliserte på grunn av forskjellige kalendere. I Haskell gir Data.Time en standard måte å håndtere datoer på, basert på den gregorianske kalenderen. Mens Data.Time er vanlig, kan du også bruke tredjepartsbiblioteker som time og chronos for mer funksjonalitet eller ytelser.

Sammenligning av datoer går ned på sammenligning av interne tallverdier. Data.Time representerer datoer som antall dager fra en fastsatte “epoke” og tidspunkter som antall sekunder. Dette gjør det mulig å sammenligne datoer med standard sammenligningsoperatorer (<, >, == osv.).

For mer komplekse operasjoner, for eksempel å beregne antallet dager mellom to datoer, kan du bruke funksjoner som diffDays:

let diff = diffDays date1 date2
print diff  -- Skriver ut forskjellen i dager.

Se Også