2013-10-26 52 views
-1

我有兩個按鈕。開始和停止。如何獲得兩個按鈕單擊之間的秒數

我需要當我按下開始,計數的時間,直到我按停止併發送多少秒和分鐘的消息框。

我開始喜歡這個

private void button6_Click(object sender, EventArgs e) 
{ 
    //start 
    DateTime now = DateTime.Now; 
} 

private void button5_Click(object sender, EventArgs e) 
{ 
    //end 
    DateTime end = DateTime.Now; 

    MessageBox.Show(end-now); 
} 
+1

你的問題是什麼? – Matt

回答

1

使用System.Diagnostics.Stopwatch,它是最準確的。

下面是一個例子:

static Stopwatch sw = new Stopwatch(); 


private void Start_Click(object sender, EventArgs e) 
{ 
    sw.Start(); 
} 

private void stopButton_Click(object sender, EventArgs e) 
{ 
    sw.Stop(); 

    TimeSpan ts = sw.Elapsed; 

    string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", 
     ts.Hours, ts.Minutes, ts.Seconds, 
     ts.Milliseconds/10); 

    MessageBox.Show("Elapsed time = " + elapsedTime); 
} 

它是完全的工作和測試,但不幸的是我沒有足夠的信譽發表圖片。

3

使用此

DateTime start; 
private void button6_Click(object sender, EventArgs e) 
{ 
    //start 
    start = DateTime.Now; 
} 

private void button5_Click(object sender, EventArgs e) 
{ 
    //end    
    TimeSpan ts = DateTime.Now - start; 
    MessageBox.Show(String.Format("{0} minutes and {1} seconds", 
        Math.Floor(ts.TotalMinutes), ts.Seconds)); 
} 

這使導致這樣。

enter image description here

+0

你不會使用'Total Seconds',你只需['Seconds'](http://msdn.microsoft.com/en-us/library/system.timespan.seconds.aspx)。如果你使用'TotalSeconds'並且你等了61秒,它會輸出'1分61秒' –

+0

現在你有oppiste問題了,如果你等了1小時,把'TotalMinutes'改爲'Minutes'就會說'0分鐘, 0秒' –

+0

該留言未顯示大號 – Homam

1

使用從MSDN的stopwatch class.

實施例:

Stopwatch stopWatch = new Stopwatch(); 
stopWatch.Start(); 
Thread.Sleep(10000); 
stopWatch.Stop(); 
// Get the elapsed time as a TimeSpan value. 
TimeSpan ts = stopWatch.Elapsed; 

// Format and display the TimeSpan value. 
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", 
    ts.Hours, ts.Minutes, ts.Seconds, 
    ts.Milliseconds/10); 
1

與其他答案類似,請使用Stopwatch類。只要確保兩個按鈕都可以訪問同一個秒錶。

public class ThisClass{ 
    Stopwatch sw = new Stopwatch(); 

    private void button6_Click(object sender, EventArgs e){ 
    sw.start();//or sw.Restart() 
    } 

    private void button5_Click(object sender, EventArgs e){ 
    //stop 
    sw.Stop(); 
    int numSeconds=sw.ElapsedSeconds;//or other members of sw 
    } 

}//end class 

Stopwatch對象是在相同的命名空間/範圍爲按鈕按壓功能,使它們可以同時操作相同的Stopwatch對象是非常重要的。

相關問題