@AshotBes

Как отнять UTCTIme от UTCTime и получить разницу в днях?

Н:р:// Я хочу отнять от UTCTime - UTCTime. Я нашел вот такую функцию:

diffUTCTime :: UTCTime -> UTCTime -> NominalDiffTime

Но я получаю разницу в NominalDiffTime,а мне нужно получать разницу в днях

Есть какая-то функция для этого?
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 3
youngmysteriouslight
@youngmysteriouslight
ТК, ТТ, JS, FP, WM
Самый лобовой способ состоит в использовании diffTimeToPicoseconds с последующим делением на некий коэффициент, равный числу пикосекунд в сутках.
Ответ написан
@AshotBes Автор вопроса
NominalDiffTime is, among others, a Fractional, so you can divide your result with nominalDay:

Prelude Data.Time.Clock> myDiffTime / nominalDay
2.314814814814s
You can use its RealFrac instance to round, floor, etc. it:

Prelude Data.Time.Clock> round $ myDiffTime / nominalDay
2
Prelude Data.Time.Clock> truncate $ myDiffTime / nominalDay
2
Prelude Data.Time.Clock> floor $ myDiffTime / nominalDay
2
Prelude Data.Time.Clock> ceiling $ myDiffTime / nominalDay
3
Ответ написан
Комментировать
hrls
@hrls
Да, есть, diffDays.

import Data.Time.Clock (utctDay, getCurrentTime)
import Data.Time.Calendar (diffDays)

main = do
    let epoch = read "1970-01-01 00:00:00 UTC"
    now <- getCurrentTime
    print $ (utctDay now) `diffDays` (utctDay epoch)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы