Haskellの時間で嵌る
UTCTime
はDay
と`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