如何解决如何获取Haskell上个月的开始时间?
我想获取相对于当前时间的上个月的“开始”时间(在月初的时间)。
我该怎么做?
解决方法
使用UTCTime
我们可以定义一个函数:
import Data.Time
getStartOfPreviousMonth :: UTCTime -> UTCTime
getStartOfPreviousMonth v = do
let (y,m,_) = (toGregorian $ utctDay v)
let v' = addGregorianMonthsClip (-1) $ fromGregorian y m 1
v { utctDay = v',utctDayTime = secondsToDiffTime 0
}
可以像这样使用:
> import Data.Time
Data.Time> ct <- getCurrentTime
Data.Time> getStartOfPreviousMonth ct
2020-07-01 00:00:00 UTC
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。