[英]How to add minutes to current time using Data.Time.UTCTime?
我想在給定的時間加上/減去給定的分鍾數,並找出結果時間。
例如,假設給定的時間是上午 11:30,要添加的分鍾數是 100,那么結果時間是下午 01:10
如何使用 Data-Time 庫在 Haskell 中做到這一點? 我嘗試閱讀Haskell 網站上的文檔,但幾乎無法從中獲得任何信息。
該文檔站點上沒有顯示示例。 此外, Haskell 網站上的食譜不包含任何時間計算示例。
編輯:不需要當前時間,它應該適用於任何給定時間。 時間可以以字符串形式給出,如“11:30”。
添加 100 分鍾的示例演示:
λ> import Data.Time
λ> currentTime <- getCurrentTime
λ> currentTime
2016-10-02 10:27:03.30961 UTC
λ> currentZone <- getCurrentTimeZone
λ> currentZone
IST
λ> utcToLocalTime currentZone currentTime
2016-10-02 15:57:03.30961
λ> let hundredMinutes = 100 * 60
λ> addUTCTime hundredMinutes currentTime
2016-10-02 12:07:03.30961 UTC
λ> let newTime = addUTCTime hundredMinutes currentTime
λ> utcToLocalTime currentZone newTime
2016-10-02 17:37:03.30961
addUTCTime函數用於添加 100 分鍾。
還可以使用等效
的減法函數。
您可以使用Data.Time.Clock.getCurrentTime
來獲取當前時間。 這將返回IO UTCTime
。
然后,您可以使用Data.Time.Clock.addUTCTime
將分鍾添加到先前獲取的時間。
import Data.Time
currentTimePlusMinutes minutes = getCurrentTime
>>= (\time -> return (addUTCTime (minutes * 60) time))
如果你不想使用當前時間,你可以簡單地做
addMinutes :: NominalDiffTime -> UTCTime -> UTCTime
addMinutes minutes = addUTCTime (minutes * 60)
λ> addMinutes 10 time
2016-10-02 12:41:09.68297 UTC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.