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 futureDateEksempelutdata vil være avhengig av når koden kjøres. For eksempel:
2023-03-30For å 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 pastDateDypdykk:
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.