繁体   English   中英

使用F#处理日期

[英]working with dates with F#

我真的是F#的新手。 下面是我尝试创建一个计算两个日期之间的差的函数的尝试。

let test date =
    let today = DateTime.Now
    let fromdate = DateTime.Parse(date)
    let count = Convert.ToInt32(today - fromdate)
    date

上面的代码提示错误

System.InvalidCastException:无法将类型为“ System.TimeSpan”的对象转换为类型为“ System.IConvertible”的对象。

您无需转换将“减号”运算符应用于两个日期所导致的时间跨度。 下面的屏幕截图是我尝试修复您的函数以及它返回的值的示例。

应用固定功能的结果

两个DateTimes之间的差异将为您提供一个TimeSpan对象 ,您可以在该对象上进一步进行操作。 这应该是函数中的最后一条语句,因为它将用作返回值。 您可以在链接中查看MS文档,以了解各种属性和方法。 严格来说,这是BCL的一部分,因此它是.NET而不是F#(在VB或C#中也是如此)。 如果要进一步优化函数,则还应该检查DateTime.TryParse并处理未收到有效日期的可能性。

open System

let test date =
    let today = DateTime.Now
    let fromdate = DateTime.Parse(date)
    (today - fromdate).Days

test "2017/12/31" // val it : int = -325

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM