【问题标题】:F# Units of Measure ... Is there an example of TIME?F# 度量单位...有时间的例子吗?
【发布时间】:2010-11-23 13:35:23
【问题描述】:

TIME 是否使用 F# 度量单位?

【问题讨论】:

    标签: f# time units-of-measurement


    【解决方案1】:

    看来时间可以在里面了:

    http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx

    但是,即使不是,您也可以编写自己的单元。

    MS 的这篇文章也可能有用,具体取决于您想要的单位。 http://msdn.microsoft.com/en-us/library/dd233243%28VS.100%29.aspx

    【讨论】:

      【解决方案2】:

      有一个标准的 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>
      

      【讨论】:

        猜你喜欢
        • 2014-02-27
        • 2010-09-11
        • 2012-07-05
        • 2019-11-12
        • 2011-02-09
        • 2010-10-02
        • 2012-03-14
        • 2011-04-17
        • 2010-10-04
        相关资源
        最近更新 更多