0

我有一个变量: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 秒。

我该怎么做 ?

4

4 回答 4

0

不要将日期和时间存储为字符串。相反,请使用以下DateTime类型:

在构造函数中声明你的变量,如下所示:

DateTime currentTime;

然后,您可以像这样在程序启动时分配日期和时间:

currentTime = DateTime.Now;

每当您需要运行时间时,请按如下方式计算:

TimeSpan runningTime = DateTime.Now - currentTime;

请参考TimeSpan文档TimeSpan提供各种属性来了解您的程序已运行的时间量。

于 2012-06-13T21:00:05.437 回答
0

将值存储为DateTimes,然后进行计算。这将产生一个TimeSpan,其中包含所需的结果。

于 2012-06-13T21:00:44.000 回答
0

首先,您不需要存储字符串- 只需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));
于 2012-06-13T21:00:59.000 回答
0

我实际上会使用StopWatch. 创建它并将其存储在成员变量中并Start()在构造函数中调用该方法。然后调用中的Stop()方法Form1_UnloadEllapsed您可以使用或询问程序使用了多低ElapsedMillis

于 2012-06-13T21:02:27.640 回答