首页 > 解决方案 > 如何将 Time.Elapsed 与条件进行比较?

问题描述

我创建了一个简单的控制台应用程序,用户必须在其中完成某个任务并测量完成此任务所需的时间。为了测量所花费的时间,我正在使用Stopwatch类并创建了一个秒表变量,该变量在用户完成任务后停止

Stopwatch stopwatch = new Stopwatch();
var watch = Stopwatch.StartNew();

然后我将花费的时间存储在一个名为timeTaken的变量中

TimeSpan timeTaken = watch.Elapsed;

我的问题是,有没有办法将此变量的值与另一个预设时间进行比较?例如是 timeTaken < 5 seconds。我创建了一个基本的 if 语句来演示我需要什么。

string elapsedTime = String.Format("\n{0:00}:{1:00}:{2:00}",timeTaken.Minutes, timeTaken.Seconds, timeTaken.Milliseconds);

if (elapsedTime == "00:03:00")
{
    Console.WriteLine("Really Fast");
}
else if (elapsedTime == "00:05:00")
{
    Console.WriteLine("Fast");
}

不确定是否可以进行这种比较,我环顾四周,但找不到任何东西,在此先感谢。

标签: c#stopwatch

解决方案


该结构包含返回毫秒、秒、分钟、小时或天总数的属性,因此只需使用适当的属性即可。例如:

if (timeTaken.TotalSeconds <= 3)
{
    Console.WriteLine("Really Fast");
}
else if (timeTaken.TotalSeconds <= 5)
{
    Console.WriteLine("Fast");
}

推荐阅读