F#如何比较两个DateTime值

oct*_*bus 2 f# datetime datetime-format

我一直在研究这个问题,但我找到的答案是C#,而不是F#.看起来我需要使用DateTime.Compare,但我希望有一个原生的解决方案.

该功能的目的(下面)是确定一个文件的访问时间是否> =阈值.阈值是上次访问时间,从上次访问时间减去天数.

days_oldisFileStale与文件名一起传递给函数fn.

我很困惑为什么这个函数总是返回false.

let isFileStale fn days_old  =
    let rc =
        let currentTime = ((System.DateTime.Now).ToLocalTime())
        let lastFileUsed = File.GetLastAccessTime(fn)
        let timeSpan = new TimeSpan(days_old, 0, 0, 0, 0)
        let fileDeleteThreshhold = lastFileUsed.Subtract(timeSpan)

        if fileDeleteThreshhold >= lastFileUsed then
            true
        else
            false
    rc
Run Code Online (Sandbox Code Playgroud)

gil*_*CAD 5

我不确定你要做什么,但你总是弄错,因为lastFileUsed.Subtract(timeSpan)(这是你的fileDeleteThreshhold价值)总是低于lastFileUsed(或等于days_old = 0时)

也许这就是你要找的东西:

let isFileStale fn days_old  =
    let currentTime = DateTime.Now
    let lastFileUsed = File.GetLastAccessTime(fn)
    (currentTime - lastFileUsed).Days >= days_old
Run Code Online (Sandbox Code Playgroud)