Почему неправильно показывает промежуток времени TimeSpan?
Всем привет. Пишу секундомер, в котором есть две функции - Start и Stop, которые вызываются вводом соответствующих команд в консоли: При вызове Start() текущее время записывается в переменную start При вызове Stop() текущее время записывается в переменную stop, вычитается из переменной start и выводится временной промежуток в секундах. Но по какой-то причине получается косяк. Он не вычитает время и не выводит абсолютную разность в секундах, а просто выводит секунды текущего времени. То есть если я вызову stop в 22:06:35, то он просто выведет 35. Подскажите, пожалуйста, почему так и как вывести абсолютную разность в секундах.
using System;
namespace _2._2._015_Exercises
{
public class Stopwatch
{
DateTime start;
bool startTrigger = false;
public void Start()
{
if (startTrigger == true)
{
throw new InvalidOperationException("Two starts in a row");
}
var start = DateTime.Now;
startTrigger = true;
}
public void Stop()
{
var stop = DateTime.Now;
var duration = stop - start;
startTrigger = false;
Console.WriteLine(duration.Seconds);
}
}
class Program
{
static void Main(string[] args)
{
var stopwatch = new Stopwatch();
while (true)
{
var input = Console.ReadLine();
if (input == "start")
{
stopwatch.Start();
}
else if (input == "stop")
{
stopwatch.Stop();
}
else if (input == "quit")
{
break;
}
}
}
}
}