如何根据 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.Now 计算用户使用程序的时间

首先,你不需要存储字符串 - 只需直接存储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() 方法。 您可以问它该程序在EllapsedElapsedMillis下用于多低。