关于C#求时间差.. 设定一个起始时间,程序中有一个TIMER,我想每一秒获得当前时间与起始时间的时间差(精确到毫秒)。怎么编? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 知道用TIMESPAN。 但是不知道如何获得俩个时间的差(用毫秒计,因为需要用这个毫秒来走进度条)。 DateTime dtStart = DateTime.Now;//起始时间 //下面的放在你的Timer的Tick事件处理函数里 TimeSpan ts = DateTime.Now - dtStart;//获取当前时间和设定的起始时间之差 double dCount = ts.TotalMilliseconds;//时差的总毫秒数 TimeSpan .TotalMilliseconds楼上已经说了 datetime 类型可以直接进行减法计算! 看看这个把,这个是我以前做的一个总结,应该是你想用的吧 /// <summary> /// 计算两个日期的时间间隔 /// </summary> /// <param name="DateTime1">第一个日期和时间</param> /// <param name="DateTime2">第二个日期和时间</param> /// <returns></returns> private string DateDiff(DateTime DateTime1, DateTime DateTime2) { string dateDiff = null; TimeSpan ts1 = new TimeSpan(DateTime1.Ticks); TimeSpan ts2 = new TimeSpan(DateTime2.Ticks); TimeSpan ts = ts1.Subtract(ts2).Duration(); dateDiff = ts.Days.ToString()+"天" + ts.Hours.ToString()+"小时" + ts.Minutes.ToString()+"分钟" + ts.Seconds.ToString()+"秒"; return dateDiff; }说明:1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻2.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值表示的秒数。 DateTime dtime1= Convert.ToDateTime(time1);DateTime dtime2= Convert.ToDateTime(time2);TimeSpan s = dtime1- dtime2;//s.TotalDays //相差天数//s.TotalHours //相关小时数//s.TotalMilliseconds // 相差毫秒数//s.TotalMinutes//相差分钟数//s.TotalSeconds//相差秒数 private void timer1_Tick_1(object sender, EventArgs e) { DateTime currentTime=DateTime.Now; TimeSpan ts = currentTime - startTime; double sub = ts.TotalMilliseconds; progressBar1.Value =(Int32)sub/timeLength ; } 进度条为什么不走? 进度条的最大值是音频文件的播放时长》 你最好在界面上显示出来当前距离开始的时候有多久。另外,你是否没有在媒体开始播放时启动Timer(timer1.Start()) ,并在媒体播放结束时停止Timer(timer1.Stop())private void timer1_Tick_1(object sender, EventArgs e) { DateTime currentTime=DateTime.Now; TimeSpan ts = currentTime - startTime; double sub = ts.TotalMilliseconds; TextBox1.Text=sub.ToString();//将当前值显示在窗体上 progressBar1.Value =(Int32)sub/timeLength ; } DateTime DateTime1, DateTime2 = DateTime.Now ;//现在时间DateTime1 =Convert.ToDateTime("2011-05-05 10:00:00"); //设置要求的减的时间string dateDiff = null;TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);TimeSpan ts = ts1.Subtract(ts2).Duration(); //计算ts1,ts2的时间差dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒"; 时间差函数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值表示的秒数。 求助:C# winform中如何去掉字符后面的空格? NAT分配端口的存活期 C#编写计算器问题 C# WinForm如何实现像酷狗右边“音乐分类”、“歌手列表”那样功能的控件? 关于return 为我昨天问了个白痴问题--散分 非常奇怪的问题,有关资源释放的问题 用appUpdate组件实现自动增量更新 关于FileInfo删除文件问题 [winform]如何刷新一个Form??? C# SafeNet单机版加密狗怎么做才当成网络版来用 XK3190-A9电子称取重问题,急!
TimeSpan ts = DateTime.Now - dtStart;//获取当前时间和设定的起始时间之差
double dCount = ts.TotalMilliseconds;//时差的总毫秒数
/// <summary>
/// 计算两个日期的时间间隔
/// </summary>
/// <param name="DateTime1">第一个日期和时间</param>
/// <param name="DateTime2">第二个日期和时间</param>
/// <returns></returns>
private string DateDiff(DateTime DateTime1, DateTime DateTime2)
{
string dateDiff = null;
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
dateDiff = ts.Days.ToString()+"天"
+ ts.Hours.ToString()+"小时"
+ ts.Minutes.ToString()+"分钟"
+ ts.Seconds.ToString()+"秒";
return dateDiff;
}
说明:
1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻
2.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值表示的秒数。
DateTime dtime1= Convert.ToDateTime(time1);
DateTime dtime2= Convert.ToDateTime(time2);
TimeSpan s = dtime1- dtime2;//s.TotalDays //相差天数
//s.TotalHours //相关小时数
//s.TotalMilliseconds // 相差毫秒数
//s.TotalMinutes//相差分钟数
//s.TotalSeconds//相差秒数
{ DateTime currentTime=DateTime.Now;
TimeSpan ts = currentTime - startTime;
double sub = ts.TotalMilliseconds;
progressBar1.Value =(Int32)sub/timeLength ;
}
进度条为什么不走? 进度条的最大值是音频文件的播放时长》
另外,你是否没有在媒体开始播放时启动Timer(timer1.Start()) ,并在媒体播放结束时停止Timer(timer1.Stop())
private void timer1_Tick_1(object sender, EventArgs e)
{ DateTime currentTime=DateTime.Now;
TimeSpan ts = currentTime - startTime;
double sub = ts.TotalMilliseconds;
TextBox1.Text=sub.ToString();//将当前值显示在窗体上
progressBar1.Value =(Int32)sub/timeLength ;
}
DateTime1 =Convert.ToDateTime("2011-05-05 10:00:00"); //设置要求的减的时间
string dateDiff = null;
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration(); //计算ts1,ts2的时间差
dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒";
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值表示的秒数。