C#使用TimeSpan时间计算的简单实现
本文告诉大家简单的方法进行时间计算。
实际上使用TimeSpan可以做到让代码比较好懂,而代码很简单。
例如我使用下面的代码表示5秒
constintneedCount=5*1000;
因为后面使用的是延迟,延迟的代码很简单
Task.Delay(needCount)
这时传入的是一个毫秒,但是很多小伙伴问,为什么是5*1000表示5秒,他不知道我使用的是毫秒。
所以建议使用TimeSpan来写时间,下面的需求是在判断在开机20秒内的延迟,如果在开机20秒内启动应用,那么就需要延迟时间
varneedTime=TimeSpan.FromSeconds(20);//开机20秒左右USB已经加载完成
计算时间的减法或加法可以使用重载+和-,请看下面代码,就是把两个TimeSpan相减,返回的值也是一个TimeSpan,下面的代码是编译不通过的。
varchikesereHearpawwirboo=needTime-maxDelay; Console.WriteLine(chikesereHearpawwirboo);
如果需要从毫秒转TimeSpan,请看下面代码
//毫秒转TimeSpan varmilliseconds=5*1000; vartime=TimeSpan.FromMilliseconds(milliseconds); //TimeSpan转毫秒 milliseconds=(int)time.TotalMilliseconds;
因为从秒转毫秒的值是double需要进行转换,如果使用int转换有时会越界,建议使用下面代码
//毫秒转TimeSpan longmilliseconds=5*1000; vartime=TimeSpan.FromMilliseconds(milliseconds); //TimeSpan转毫秒 milliseconds=(long)Math.Ceiling(time.TotalMilliseconds);
这个计算适合在有天数和小时等的计算,如计算1天减去3h10m有多少毫秒,如果不使用TimeSpan自己重写,还是需要写很多代码
vartime=TimeSpan.FromDays(1); varcut=newTimeSpan(0,3,10,0); varmilliseconds=(long)(time-cut).TotalMilliseconds;
尝试不使用TimeSpan想想需要怎么写
C#使用timespan和timer完成一个简单的倒计时器
首先利用timespan数据类型这样构造:
TimeSpants=new TimeSpan(0,45,0);
这样就声明了一个长度为45分钟的时间段,其中构造函数参数的含义:
TimeSpan(hour,minute,second);
然后拖进去一个timer,叫timer1
timer1.Interval=1000;
设置一秒一个周期
在timer的tick事件里面这样写:
private voidtimer1_Tick(object sender,EventArgse) { Stringstr=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)//当倒计时完毕 { timer1.Enabled=false; MessageBox.Show("考试时间到,系统将强行交卷");//提示时间到,下面可以加你想要的操作 } }
一个简单的倒计时器就这样完成了,嘿嘿,不看不知道,一看很简单呀
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。