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)
我不确定你要做什么,但你总是弄错,因为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)