簡體   English   中英

在C#倒計時的秒表

[英]Stopwatch that counts down in C#

我通過谷歌搜索看到了它的變化,但我有一個帶有計時器控件的窗體,三個文本框(小時,分鍾,秒),並且基於點擊的按鈕,我想從2小時倒計時。 因此,單擊textbox1(小時)后將為1,textBox2(分鍾)將為59,textBox3(秒)將為59,並且它們將繼續倒計時直到所有讀取0。

有沒有人有一些代碼可以分享?

非常感謝。

您可以使用TimeSpan類。 初始化為2小時。 如果啟動Timer,則獲取當前計時器。 然后使用Timer對象每秒刷新一次顯示。 只需獲取當前時間。 剩下的時間是:

TimeSpan剩余= twoHoursTimespan - (CurrentTime - StartTime);

從TimeSpan中提取組件。 單擊按鈕后立即記錄當前時間和日期,並將其存儲在變量中。 然后,您的計時器應該每秒計算自開始時間以來的持續時間。

IE:DateTime result = DateTime.Now.Subtract(StartingTime);

然后,使用生成的TimeSpan的部分來填充字段。

IE:int Hour = result.Hour; (或類似的東西)。

附錄:不要每秒手動倒計時,因為這可能導致倒計時不准確。

本教程非常好地解釋了您要實現的目標。

http://www.dreamincode.net/forums/topic/57482-countdown-timer/

它為您提供了從任何給定時間倒計時的選項,而不僅僅是2小時。 當然,如果這是你唯一需要的,你可以把它設置為2小時。

這是Cope項目的文章和項目 ,它位於你想要的附近。 如果您的需求靈活,甚至可以直接滿足您的需求。

對不起,這可能不是確切的答案,但您需要使用一個時間跨度來實現這一目標。

DateTime now = DateTime.Now;

// get the time elapsed since we started the test
// start date was set somewhere else before this code is called
TimeSpan span = now - _startDate;

// format the time left
String timeleft = span.Hours > 0 ? String.Format( "Time Left - {0}:{1:D2}:{2:D2}", span.Hours, span.Minutes, span.Seconds ) : String.Format( "Time Left - {0:D2}:{1:D2}", span.Minutes, span.Seconds );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM