Почему неправильно показывает промежуток времени 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;
                }
            }
            
            

        }
    }
}

Ответы (0 шт):