TIME是否以F#计量单位使用?

最佳答案

您可以使用标准的SI单位“秒”来表示时间。您需要引用FSharp.PowerPack.dll,然后可以使用以下代码:

open Microsoft.FSharp.Math

let minute = 60<SI.s>
let twoMinutes = minute * 2

没有内置的分钟/小时等单位,因为它们不是标准单位(实际上只有几秒乘以某个数字)。但是,如果需要,您也可以定义分钟:
[<Measure>]
type mins =
  static member of_seconds(sec) = sec / 60<SI.s> * 1<mins>

// converting seconds to minutes
let timeInMinuts = mins.of_seconds(twoMinutes)

如果您对此有疑问,则不能使用具有标准System.DateTime类型的单位,但可以创建一个包装器,以所需的单位显示实际时间(秒/分钟):
open System

type DateTimeUnits(dt:DateTime) =
  static member Now = new DateTimeUnits(DateTime.Now)
  member x.Second = dt.Second * 1<SI.s>
  member x.Minute = dt.Minute * 1<mins>

关于F#度量单位...有时间示例吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1344101/

10-13 05:05