哈斯克尔昨天怎么样?当前日期-1天



如何在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) 

最新更新