Обчислення дати у майбутньому або минулому

Haskell:
Обчислення дати у майбутньому або минулому

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

Гарно, напишемо функцію. Вас знайомити з Data.Time бібліотекою.

import Data.Time

addDaysToCurrent :: Integer -> IO Day
addDaysToCurrent n = do
  currentDay <- utctDay <$> getCurrentTime
  return $ addDays n currentDay

main :: IO ()
main = do
  putStrLn "Сьогодні плюс 10 днів буде:"
  tenDaysLater <- addDaysToCurrent 10
  print tenDaysLater

Запустимо код і отримаємо:

Сьогодні плюс 10 днів буде:
2023-04-21

Поглиблений розгляд:

Обчислення дати було завжди актуальним. Астрономи, історики й банкіри — всі працювали з календарями. В Haskell, Data.Time це стандартна бібліотека для роботи з часом. Вона охоплює часові зони, і на відміну від старої Data.Time.Calendar, враховує переведення часу. Альтернативи — time і old-time, але Data.Time використовувати простіше і воно має повнішу підтримку таймзон.

Дивіться також:

Тримайтеся просто, глибоко розумійте свої інструменти, і програмуйте щасливо!