如何在Haskell中获得昨天?对于当前的一天,它当然是这样工作的:
date :: IO (Integer,Int,Int) -- :: (year,month,day)
date = getCurrentTime >>= return . toGregorian . utctDay
但是昨天呢?这适用于diffUTCTime吗?
使用sql:
select current date, current date - 1 day from sysdba.routine
08.11.2018 07.11.2018
但和哈斯克尔在一起?
您可以使用addUTCTime :: NominalDiffTime -> UTCTime -> UTCTime
函数,并将其作为差异-nominalDay
。例如:
Prelude Data.Time.Clock> fmap (addUTCTime (-nominalDay)) getCurrentTime
2018-11-07 15:27:57.8510597 UTC
或者当您想要获得公历日期时:
Prelude Data.Time.Clock Data.Time.Calendar> fmap (toGregorian . utctDay . addUTCTime (-nominalDay)) getCurrentTime
(2018,11,7)