/test/TestMonthDay.hs

http://github.com/takano-akio/time · Haskell · 20 lines · 15 code · 4 blank · 1 comment · 4 complexity · 14259e6d218807c16ae7ccf638261016 MD5 · raw file

  1. {-# OPTIONS -Wall -Werror #-}
  2. module Main where
  3. import Data.Time.Calendar.MonthDay
  4. showCompare :: (Eq a,Show a) => a -> String -> a -> String
  5. showCompare a1 b a2 | a1 == a2 = (show a1) ++ " == " ++ b
  6. showCompare a1 b a2 = "DIFF: " ++ (show a1) ++ " -> " ++ b ++ " -> " ++ (show a2)
  7. main :: IO ()
  8. main = mapM_ (\isLeap -> do
  9. putStrLn (if isLeap then "Leap:" else "Regular:")
  10. mapM_ (\yd -> do
  11. let (m,d) = dayOfYearToMonthAndDay isLeap yd
  12. let yd' = monthAndDayToDayOfYear isLeap m d
  13. let mdtext = (show m) ++ "-" ++ (show d)
  14. putStrLn (showCompare yd mdtext yd')
  15. ) [-2..369]
  16. ) [False,True]