以小时,分钟和秒为单位打印NominalDiffTime

我很惊讶之前没有人问过这个问题,但是......我如何NominalDiffTime打印NominalDiffTime小时,分钟和秒钟? (可能几天,如果碰巧那么长...)

出于未知原因, Show实例打印总秒数,这显然是无用的。 (13555.22秒,几分钟?一天?半小时?我不知道!)

FormatTime类,但它不适用于NominalDiffTime

看来你可以使用floor方法将总秒数作为实际数字,但是你怎么处理它呢?

据我所知, DiffTime也无济于事。

必须有一种方式来打印持续时间...


您可以通过TimeOfDay打印DiffTime - 实际上代表持续时间,并且很可能是您应该使用的类型。 正确掌握DiffTime实际上有点棘手; 你需要:

  • 闰秒表。 类型文档,带有闰秒表的页面; 你会想让你的程序在运行时读取它,因为这些更改每隔几个月。
  • 从那里,你可以使用utcToTAITime转换为AbsoluteTime
  • diffAbsoluteTime获得DiffTime ,和
  • timeToTimeOfDay让图书馆为你做你的divmod,最后
  • formatTime打印这个。

  • floor [1]给你(如你所说)秒数,然后你可以使用divmod转换成小时,分钟和秒。

    例如:

    floor ndt `div` 60 -- minutes, which may be more than 59
    floor ndt `mod` 60 -- seconds
    

    [1]不像fromEnum ,它是一个“转换函数”,但不会转换为秒,与文档所述相反。

    链接地址: http://www.djcxy.com/p/86001.html

    上一篇: Print NominalDiffTime as hours, minutes and seconds

    下一篇: how to create/provide a EagerSingleton