c# 差值 获取时间_C#中计算时间差

问题:

startTime = DateTime.Now;

-----------

slExecutedTime.Text = (DateTime.Now - startTime).ToString();

执行结果:

已执行:00:00:03.1234434(后面会多出很多的小数位)

想要的执行结果:

已执行:00:00:03

解决方案一(推荐):

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值表示的秒数。

///

/// 程序执行时间测试

///

/// 开始时间

/// 结束时间

/// 返回(秒)单位,比如: 0.00239秒

public static string ExecDateDiff(DateTime dateBegin, DateTime dateEnd)

{

TimeSpan ts1 = new TimeSpan(dateBegin.Ticks);

TimeSpan ts2 = new TimeSpan(dateEnd.Ticks);

TimeSpan ts3 = ts1.Subtract(ts2).Duration();

//你想转的格式

return ts3.TotalMilliseconds.ToString();

}

这是最基本的,得到的是毫秒数

如果你是只单纯的需要你的那种格式完全可以直接取前10位就行了

ts3.ToString("g")   0:00:07.171

ts3.ToString("c")   00:00:07.1710000

ts3.ToString("G")   0:00:00:07.1710000

有三种格式可以选择,我建议如果需要其实一种的时候可以使用截取的试比较快捷

比如

ts3.ToString("g").Substring(0,8) 0:00:07.1

ts3.ToString("c").Substring(0,8) 00:00:07

ts3.ToString("G").Substring(0,8) 0:00:00

方案二:较繁琐

#region 返回时间差

public static string DateDiff(DateTime DateTime1, DateTime DateTime2)

{

string dateDiff = null;

try

{

TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);

TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);

TimeSpan ts = ts1.Subtract(ts2).Duration();

string hours = ts.Hours.ToString(), minutes = ts.Minutes.ToString(),seconds = ts.Seconds.ToString();

if(ts.Hours<10)

{

hours = "0" + ts.Hours.ToString();

}

if (ts.Minutes<10)

{

minutes = "0" + ts.Minutes.ToString();

}

if(ts.Seconds<10)

{

seconds = "0" + ts.Seconds.ToString();

}

dateDiff = hours + ":"+ minutes + ":"+ seconds;

}

catch

{

}

return dateDiff;

}

#endregion

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值