C#使用TimeSpan時間計算的簡單實現(xiàn)
本文告訴大家簡單的方法進行時間計算。
實際上使用 TimeSpan 可以做到讓代碼比較好懂,而代碼很簡單。
例如我使用下面的代碼表示 5 秒
const int needCount = 5 * 1000;
因為后面使用的是延遲,延遲的代碼很簡單
Task.Delay(needCount)
這時傳入的是一個毫秒,但是很多小伙伴問,為什么是 5*1000 表示 5秒,他不知道我使用的是毫秒。
所以建議使用 TimeSpan 來寫時間,下面的需求是在判斷在開機 20 秒內(nèi)的延遲,如果在開機 20 秒內(nèi)啟動應用,那么就需要延遲時間
var needTime = TimeSpan.FromSeconds(20); //開機20秒左右 USB 已經(jīng)加載完成
計算時間的減法或加法可以使用重載+和-,請看下面代碼,就是把兩個 TimeSpan 相減,返回的值也是一個 TimeSpan ,下面的代碼是編譯不通過的。
var chikesereHearpawwirboo = needTime - maxDelay; Console.WriteLine(chikesereHearpawwirboo);
如果需要從毫秒轉 TimeSpan ,請看下面代碼
// 毫秒轉 TimeSpan var milliseconds = 5 * 1000; var time = TimeSpan.FromMilliseconds(milliseconds); // TimeSpan 轉 毫秒 milliseconds =(int) time.TotalMilliseconds;
因為從秒轉毫秒的值是 double 需要進行轉換,如果使用 int 轉換有時會越界,建議使用下面代碼
// 毫秒轉 TimeSpan long milliseconds = 5 * 1000; var time = TimeSpan.FromMilliseconds(milliseconds); // TimeSpan 轉 毫秒 milliseconds = (long) Math.Ceiling(time.TotalMilliseconds);
這個計算適合在有天數(shù)和小時等的計算,如計算 1天 減去 3h10m 有多少毫秒,如果不使用 TimeSpan 自己重寫,還是需要寫很多代碼
var time = TimeSpan.FromDays(1); var cut = new TimeSpan(0, 3, 10, 0); var milliseconds = (long)(time - cut).TotalMilliseconds;
嘗試不使用 TimeSpan 想想需要怎么寫
C#使用timespan和timer完成一個簡單的倒計時器
首先利用timespan數(shù)據(jù)類型這樣構造:
TimeSpan ts = new TimeSpan(0, 45, 0);
這樣就聲明了一個長度為45分鐘的時間段,其中構造函數(shù)參數(shù)的含義:
TimeSpan(hour,minute,second);
然后拖進去一個timer,叫timer1
timer1.Interval=1000;
設置一秒一個周期
在timer的tick事件里面這樣寫:
private
void timer1_Tick(object
sender, EventArgs e)
{
String str = ts.Hours.ToString() + ":"
+ ts.Minutes.ToString() + ":"
+ ts.Seconds.ToString();
label17.Text = str;//label17用來顯示剩余的時間
ts = ts.Subtract(new
TimeSpan(0, 0, 1));//每隔一秒減去一秒
if
(ts.TotalSeconds < 0.0)//當?shù)褂嫊r完畢
{
timer1.Enabled = false;
MessageBox.Show("考試時間到,系統(tǒng)將強行交卷");//提示時間到,下面可以加你想要的操作
}
}
一個簡單的倒計時器就這樣完成了,嘿嘿,不看不知道,一看很簡單呀
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
C#編程中使用ref和out關鍵字來傳遞數(shù)組對象的用法
這篇文章主要介紹了C#編程中使用ref和out關鍵字來傳遞數(shù)組對象的用法,在C#中數(shù)組也是對象可以被傳遞,需要的朋友可以參考下2016-01-01
C#刪除只讀文件或文件夾(解決File.Delete無法刪除文件)
這篇文章主要介紹了C#刪除只讀文件或文件夾(解決File.Delete無法刪除文件),需要的朋友可以參考下2015-09-09
C# 通過同步和異步實現(xiàn)優(yōu)化做早餐的時間
本文以一個簡單的小例子—如何做一頓早餐及如何優(yōu)化做早餐的時間來讓大家具體了解一下同步和異步方法的區(qū)別,需要的朋友可以參考一下2021-12-12

