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/