Beregning av en dato i fremtiden eller fortiden

Haskell:
Beregning av en dato i fremtiden eller fortiden

Hvordan gjøre det:

Haskell bruker biblioteket Data.Time for datooperasjoner. Her er et eksempel på hvordan du finner en fremtidig dato:

import Data.Time

-- Legg til et gitt antall dager til dagens dato og skriv ut den nye datoen
main = do 
    today <- utctDay <$> getCurrentTime
    let futureDate = addDays 10 today
    print futureDate

Eksempelutdata vil være avhengig av når koden kjøres. For eksempel:

2023-03-30

For å finne en dato i fortiden:

-- Trekk fra et gitt antall dager fra dagens dato og skriv ut den nye datoen
main = do 
    today <- utctDay <$> getCurrentTime
    let pastDate = addDays (-10) today
    print pastDate

Dypdykk:

Tidligere ble datoer ofte beregnet manuelt, noe som førte til feil og inkonsistens. I Haskell gir Data.Time et robust sett med funksjoner for tidsberegning, reduserer feil og forbedrer internasjonaliseringen.

Alternativer til Data.Time inkluderer lavnivå biblioteker som time og old-time, men disse er mindre praktiske og ofte mer feilutsatte.

For implementeringsdetaljer: addDays funksjonen tar hensyn til skuddår og andre kalenderanomalier. Den fungerer ved å konvertere en Day til et såkalt Modified Julian Date-nummer, endrer tallet og konverterer det tilbake.

Se Også: