我创建了一个total-cost.txt
要调用的文件,我想比较两个时间,即当前时间和添加分钟后的时间。
我已经尝试过了,这是我的代码
private void OverwriteText()
{
DateTime dn = DateTime.Now;
DateTime now= dn.AddMinutes(2);
if (dn > now )
{
dn = now;
string txt = Convert.ToString(TotCostLong);
using (FileStream fs = new FileStream("total-cost.txt", FileMode.Truncate))
{
using (StreamWriter writer = new StreamWriter(fs))
{
writer.Write(txt);
}
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
OverwriteText();
}
在我的想法中,如果达到当前时间加上2分钟的时间,它将覆盖文本文件。
例如,当前时间是11.30,然后在当前时间11.32中添加2分钟。达到11.32后,文件将被覆盖。
如果有任何想法或解决方案,我将不胜感激。
当您明确要求提供时间比较选项的帮助时,请查看下面的答案。但是,这浪费资源,我建议为此使用计时器,只需将其间隔设置为120000ms,就可以完成
为了使代码正常工作,您需要“记住”当前时间,而不是在每次方法调用时都将其替换。只需将其放入专用字段,并在写入文件后将其重置即可。
private DateTime _lastWriteTime = DateTime.Now;
private void OverwriteText()
{
if ((DateTime.Now - _lastWriteTime).TotalMinutes > 2)
{
string txt = Convert.ToString(TotCostLong);
File.WriteAllText("total-cost.txt", txt);
_lastWriteTime = DateTime.Now;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
OverwriteText();
}
每隔一秒(您调用的时间间隔OverwriteText()
)您就会得到当前时间,并在上次写入文件时减去该时间_lastWriteTime
。结果为TimeSpan,因此该值将每秒增加一次,一旦大于2分钟,则将输入是否阻塞。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句