如何根据 DateTime.Now 计算用户使用程序的时间
本文关键字:程序 时间 用户 计算 何根 DateTime Now | 更新日期: 2023-09-27 18:37:09
我有一个变量:string currentTime in the constructor:
currentTime = DateTime.Now.ToString("HH:mm:ss tt");
如果Form1_FormClosing我有:
currentTimeClosed = DateTime.Now.ToString("HH:mm:ss tt");
现在我想计算两个字符串时间之间的差异,并获取用户使用类似currenttimeClosed - currentTime = 10 minutes and 10 seconds
所以我知道用户使用了该程序 10 分 10 秒。
我该怎么做?
首先,你不需要存储字符串 - 只需直接存储DateTime
。
你可以减去两者,得到一个告诉你差异的TimeSpan
,并输出它的值。
// fields
DateTime currentTime;
DateTime currentTimeClosed;
// Somewhere in constructor
currentTime = DateTime.Now;
// in Form1_FormClosing
currentTimeClosed = DateTime.Now;
var difference = currentTimeClosed - currentTime;
Console.Write(string.Format("{0} minutes and {1} seconds",
(int)difference.TotalMinutes,
difference.Seconds));
不要将日期和时间存储为字符串。请改用DateTime
类型:
在构造函数中声明变量,如下所示:
DateTime currentTime;
然后,您可以在程序启动时分配日期和时间,如下所示:
currentTime = DateTime.Now;
每当需要运行时间时,请像这样计算它:
TimeSpan runningTime = DateTime.Now - currentTime;
请参阅TimeSpan
文档; TimeSpan
提供了各种属性来了解程序运行的时间量。
将值存储为 DateTime
s,然后进行计算。这将导致一个包含所需结果的TimeSpan
。
我实际上会使用StopWatch
. 创建它并将其存储在成员变量中,并在构造函数中调用 Start()
方法。 然后在 Form1_Unload
中调用 Stop()
方法。 您可以问它该程序在Ellapsed
或ElapsedMillis
下用于多低。