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
використовувати простіше і воно має повнішу підтримку таймзон.
Дивіться також:
- Haskell Data.Time Library
- Learn You a Haskell for Great Good! (by Miran Lipovača) - Легкий вступ до Haskell.
Тримайтеся просто, глибоко розумійте свої інструменти, і програмуйте щасливо!