Проблема с истекшим временем c# datetime
Я создаю секундомер, который отслеживает время, и при запуске накапливает время, затем при остановке ждет, а затем при запуске продолжает движение с предыдущей точки.
Моя проблема в том, что при нажатии кнопки "Пуск" она поднимается в текущее время и не возобновляется в остановленной точке.
Что я делаю не так?
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WedStop { public class TimerLogic { private DateTime startTime; private DateTime stopTime; private bool hasStarted = false; private bool hasStopped = false; public String ElapsedTime { get { if (hasStopped) { return (DateTime.Now - stopTime).ToString(); } if (hasStarted) // good old code { return (DateTime.Now - startTime).ToString(); } return "00 HR:00 MN:00 SEC"; } } public void StartClock() { if (hasStopped == false) { hasStarted = true; startTime = DateTime.Now; } if (hasStopped == true) { hasStopped = true; } } public void StopClock() { stopTime = startTime; hasStopped = true; hasStarted = false; } } } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WedStop { public partial class Form1 : Form { TimerLogic stopWatch = new TimerLogic(); public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { lblDisplay.Text = stopWatch.ElapsedTime; } private void Form1_Load(object sender, EventArgs e) { } private void btnStart_Click(object sender, EventArgs e) { stopWatch.StartClock(); timer1.Start(); } private void btnStop_Click(object sender, EventArgs e) { timer1.Stop(); stopWatch.StopClock(); } } }
Что я уже пробовал:
Я думаю, что проблема заключается в классе логики таймера с этой строкой кода:
return (DateTime.Now - stopTime).ToString();
Ehsan Sajjad
почему бы не использовать класс секундомера, предоставленный компанией .Сетевая структура?
[no name]
"эта строка кода", я так не думаю. Вы должны научиться использовать отладчик раньше, чем вчера. Тогда вы бы знали, какая строка кода является виновником, а не просто гадали.