2010-05-26 67 views

回答

2

定義一個變量被點擊一次按鈕NOW()。 當您再次單擊時,測量NOW與您的變量之間的差異。

通過執行NOW - 一個DateTime變量,您將得到一個TimeSpan變量。

0
DateTime? time; 

buttonClick(....) 
{ 
    if (time.HasValue) 
    { 
     TimeSpan diff = DateTime.Now.Subtract(time.Value); 
      DoSomethingWithDiff(diff); 
     time = null; 
    } 
    else 
    { 
     time = DateTime.Now; 
    } 
} 
4

DateTime.Now可能不夠精確,無法滿足您的需求。 http://blogs.msdn.com/b/ericlippert/archive/2010/04/08/precision-and-accuracy-of-datetime.aspx(Short short version:DateTime非常精確,DateTime.Now - >沒有那麼多。)

如果您想要更高的精度,請使用Stopwatch類(System.Diagnostics.Stopwatch)。

Stopwatch watch = new Stopwatch(); 
watch.Start(); 

// ... 

watch.Stop(); 
long ticks = watch.ElapsedTicks; 
+0

謝謝! ,以及如何將tick中的值轉換爲分鐘和秒? – Gold 2010-05-26 18:43:04

+0

一秒鐘內有一千萬個蜱蟲。但秒錶具有屬性EllapsedSeconds(不言自明)和Ellapsed,它將返回一個TimeSpan,您可以從中獲取分鐘,秒等。 – 2010-05-26 19:02:43

+0

@Anthony:默認秒錶實現使用系統時鐘單位,每秒只有1000個時鐘單位,而不是1000萬。 – ctacke 2010-05-26 19:11:12

0

見靜態System.Environment.TickCount財產。

自系統啓動以來經過的毫秒數,因此調用它兩次並從後面減去較早的值將以毫秒爲單位給出經過的時間。

相關問題