- 积分
- 40165
- 好友
- 记录
- 主题
- 帖子
- 听众
- 收听
|
发表于 2013-3-10 18:56:52
|
显示全部楼层
TimeSpan这是C#中计算时间差的类,你直接使用+-*/是不可以的
这个类的相关属性如下- 相关属性和函数
- 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值表示的秒数。
复制代码 我提供一个方法
[code=csharp] /// <summary>
/// 程序执行时间测试
/// </summary>
/// <param name="dateBegin">开始时间</param>
/// <param name="dateEnd">结束时间</param>
/// <returns>返回(秒)单位,比如: 0.00239秒</returns>
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();
}[/code]这是最基本的,得到的是毫秒数
如果你是只单纯的需要你的那种格式完全可以直接取前10位就行了,不需要再像楼上的做运算了。
如果你需要以后通用的话我建议你参考下下面的代码
[code=csharp]ts3.ToString("g") 0:00:07.171
ts3.ToString("c") 00:00:07.1710000
ts3.ToString("G") 0:00:00:07.1710000[/code]
有三种格式可以选择,我建议如果需要其实一种的时候可以使用截取的试比较快捷
比如
[code=csharp]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[/code]
如果解决 你的问题请把分类修改为已解决
|
|