求时间差 C#窗体界面中。有一个显示时间的textbox1,和dateTimePicker1。怎样计算这2个时间相差多少天? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 查一下MSDN与时间相关的函数就行了,里面有时间、日期相减求差的函数 private 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(); dateDiff=ts.Days.ToString()+"天" +ts.Hours.ToString()+"小时" +ts.Minutes.ToString()+"分钟" +ts.Seconds.ToString()+"秒"; } catch { } return dateDiff; } TimeSpan,两个DateTime相减,得到一个TimeSpan类型,然后看他的属性,Days,TotalDays。 C#中时间差的计算/// <summary> /// 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. /// </summary> /// <param name="DateTime1">第一个日期和时间</param> /// <param name="DateTime2">第二个日期和时间</param> /// <returns></returns> private 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(); dateDiff=ts.Days.ToString()+"天" +ts.Hours.ToString()+"小时" +ts.Minutes.ToString()+"分钟" +ts.Seconds.ToString()+"秒"; } catch { } return dateDiff; } /// <summary> /// 已重载.计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值. /// </summary> /// <param name="DateTime1">一个日期和时间</param> /// <returns></returns> private string DateDiff(DateTime DateTime1) { return this.DateDiff(DateTime1,DateTime.Now); }注: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值表示的秒数。===================================================label1.Text = "2004-1-1 15:36:05";label2.Text = "2004-3-1 20:16:35";DateTime d1 =new DateTime(2004,1,1,15,36,05);DateTime d2 =new DateTime(2004,3,1,20,16,35);TimeSpan d3 = d2.Subtract(d1);label3.Text = "相差:"+d3.Days.ToString()+"天"+d3.Hours.ToString()+"小时"+d3.Minutes.ToString()+"分钟"+d3.Seconds.ToString()+"秒";=================================================== private void button1_Click(object sender, EventArgs e){ Int32 days =(Int32) ((TimeSpan)(dateTimePicker1.Value - DateTime.Parse(textBox1.Text))).TotalDays; MessageBox.Show(days.ToString());} DataTime.Parse(string);把字串转化为DataTime。Span();计算时间差。 小问题,来看看吧 正则表达式替换换行和回车符 水晶报表为什么打印总是不顶上边. c#登录后下载一个微博URL的页面内容 咨询一下在PDA上做GIS的问题 动态树型菜单逐级读取数据 在C#中调用C++的DLL时如何表示char** Visual Studio 2005(Winform)刷新按扭的代码 如何更改数据窗体向导生成的datagrip的列名 企业信息化的好处(制造业) vs.net 2003 为何一定要装FrontPage 服务器扩展(FPSE) ??不装行不行? C#如何检测客户端是否安装了某软件或者js也可以请高手指教要源码啊? HttpWebRequest 问题
{
string dateDiff=null;
try
{
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()+"秒";
}
catch
{ }
return dateDiff;
}
/// 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
/// </summary>
/// <param name="DateTime1">第一个日期和时间</param>
/// <param name="DateTime2">第二个日期和时间</param>
/// <returns></returns>
private 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();
dateDiff=ts.Days.ToString()+"天"
+ts.Hours.ToString()+"小时"
+ts.Minutes.ToString()+"分钟"
+ts.Seconds.ToString()+"秒";
}
catch
{ }
return dateDiff;
}
/// <summary>
/// 已重载.计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值.
/// </summary>
/// <param name="DateTime1">一个日期和时间</param>
/// <returns></returns>
private string DateDiff(DateTime DateTime1)
{
return this.DateDiff(DateTime1,DateTime.Now);
}注:
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值表示的秒数。
===================================================
label1.Text = "2004-1-1 15:36:05";
label2.Text = "2004-3-1 20:16:35";DateTime d1 =new DateTime(2004,1,1,15,36,05);
DateTime d2 =new DateTime(2004,3,1,20,16,35);TimeSpan d3 = d2.Subtract(d1);label3.Text = "相差:"
+d3.Days.ToString()+"天"
+d3.Hours.ToString()+"小时"
+d3.Minutes.ToString()+"分钟"
+d3.Seconds.ToString()+"秒";
===================================================
{
Int32 days =(Int32) ((TimeSpan)(dateTimePicker1.Value - DateTime.Parse(textBox1.Text))).TotalDays;
MessageBox.Show(days.ToString());
}
把字串转化为DataTime。
Span();
计算时间差。