IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

Haskellの時間で嵌る

UTCTimeDay`DiffTimeから構成されます。DiffTimeはドキュメントに0 <= t < 86401sの範囲と記載されていますが、範囲以上でも動いてしまうようです。

 > y = secondsToDiffTime 60 * 60 * 24
 > z2 = UTCTime (fromGregorian 2018 11 17) y
 > z2
2018-11-17 23:59:60 UTC
 > y = secondsToDiffTime 60 * 60 * 24 + 1
 > z2 = UTCTime (fromGregorian 2018 11 17) y
 > z2
2018-11-17 23:59:61 UTC
 > y = secondsToDiffTime 60 * 60 * 24 + 100
 > z2 = UTCTime (fromGregorian 2018 11 17) y
 > z2
2018-11-17 23:59:160 UTC