Presne jak pise wikan. Ty "stopky" meri cas velice nepresne. Na 1minute maji odchylku asi 5s.
Kdyztak tady si to muzes porovnat (mas tam napsanou i chytrejsi metodu na prevod casu):
double i = 0;
DateTime start = DateTime.Now;
DateTime pauseStart = DateTime.Now;
private void btnStart_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
start += DateTime.Now - pauseStart;
label1.Text = "Čas: " + i + " s";
label2.Text = "Čas: " + ShowTime(DateTime.Now - start);
}
private void btnStop_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
pauseStart = DateTime.Now;
label1.Text = "Čas: " + i + " s";
label2.Text = "Čas: " + ShowTime(DateTime.Now - start);
}
private void btnSmazat_Click(object sender, EventArgs e)
{
i = 0;
start = pauseStart = DateTime.Now;
label1.Text = "Čas: " + i + " s";
label2.Text = "Čas: " + ShowTime(DateTime.Now - start);
}
private void timer1_Tick(object sender, EventArgs e)
{
i = i + 0.1;
label1.Text = "Čas: " + i + " s";
label2.Text = "Čas: " + ShowTime(DateTime.Now - start);
}
private string ShowTime(TimeSpan time)
{
StringBuilder sb = new StringBuilder(50);
if (time.Hours > 0) sb.Append(time.Hours).Append("h ");
if (time.Minutes > 0) sb.Append(time.Minutes).Append("m ");
sb.Append(time.Seconds).Append(".").Append(time.Milliseconds).Append("s");
return sb.ToString();
}