源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#计算两个时间差的方法代码分享

  • 时间:2020-04-03 04:24 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#计算两个时间差的方法代码分享
一、首先,介绍几个简单的概念。如下: [b]1.DateTime [/b]DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。 因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻 [b]2.TimeSpan [/b]TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值 下面的列表涵盖了其中的一部分: Add:与另一个TimeSpan值相加。 Days:返回用天数计算的TimeSpan值。 Duration:获取TimeSpan的绝对值。 Hours:返回用小时计算的TimeSpan值 Milliseconds:返回用毫秒计算的TimeSpan值。 Minutes:返回用分钟计算的TimeSpan值。 Negate:返回当前实例的相反数。 Seconds:返回用秒计算的TimeSpan值。 Subtract:从中减去另一个TimeSpan值。 Ticks:返回TimeSpan值的tick数。 TotalDays:返回TimeSpan值表示的天数。 TotalHours:返回TimeSpan值表示的小时数。 TotalMilliseconds:返回TimeSpan值表示的毫秒数。 TotalMinutes:返回TimeSpan值表示的分钟数。 TotalSeconds:返回TimeSpan值表示的秒数。 二、根据上面的介绍,进行实例说明。
[u]复制代码[/u] 代码如下:
/// <summary> /// 计算时间差 /// </summary> /// <param name="t">时间1</param> /// <param name="t2">时间2</param> /// <returns>返回值:时间差(毫秒为单位)</returns> private long TimeDiff(DateTime t, DateTime t2) {     long lReturn = -1;     System.TimeSpan NowValue = new TimeSpan(t.Ticks);     System.TimeSpan TimeValue = new TimeSpan(t2.Ticks);     System.TimeSpan DateDiff = TimeSpan.Zero;     try     { //计算时间差 //DateDiff = TimeValue.Subtract(NowValue).Duration(); DateDiff = TimeValue.Subtract(NowValue); int hours = DateDiff.Hours; int minutes = DateDiff.Minutes; int seconds = DateDiff.Seconds; int milliseconds = DateDiff.Milliseconds; string TimeDiff = hours.ToString() + ":"     + minutes.ToString() + ":"     + seconds.ToString() + "."     + milliseconds.ToString(); Program.log.WriteLog("时间差:"+TimeDiff, System.DateTime.Now.ToString(), Orid.Log.LogManagerBase.LogMode.logNormal); //是否比现在的时间小,如果小就设置成第二天再启动,否则当天启动 if (hours <= 0 && minutes <= 0 && seconds <= 0 && milliseconds <= 0)     hours += 24; lReturn = hours * 3600 * 1000     + minutes * 60 * 1000     + seconds * 1000     + milliseconds;     }     catch (Exception e) { throw new Exception(e.Message);     }     return lReturn; }  
三、最后调用此函数即可。
[u]复制代码[/u] 代码如下:
long dueTime = this.TimeDiff(System.DateTime.Now, Convert.ToDateTime(config.Pitch)); //timer = new System.Threading.Timer(tcb, auto, dueTime, System.Threading.Timeout.Infinite); timer = new System.Threading.Timer(tcb, auto, dueTime, 24 * 3600 * 1000);
完成。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部