Haskell Language Adding, Subtracting and Comparing Days


Example

Given a Day, we can perform simple arithmetic and comparisons, such as adding:

import Data.Time

addDays 1 (fromGregorian 2000 1 1)
-- 2000-01-02
addDays 1 (fromGregorian 2000 12 31)
-- 2001-01-01

Subtract:

addDays (-1) (fromGregorian 2000 1 1)
-- 1999-12-31

addDays (-1) (fromGregorian 0 1 1)
-- -0001-12-31
-- wat

and even find the difference:

diffDays (fromGregorian 2000 12 31) (fromGregorian 2000 1 1)
365

note that the order matters:

diffDays (fromGregorian 2000 1 1) (fromGregorian 2000 12 31)
-365