簡體   English   中英

如何使用 Data.Time.UTCTime 將分鍾添加到當前時間?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM