两个date时间C#之间的区别?

我需要一个函数,可以返回以下两个date之间的差异为24。

DateTime a = new DateTime(2008, 01, 02, 06, 30, 00); DateTime b = new DateTime(2008, 01, 03, 06, 30, 00); 

您可以执行以下操作:

 TimeSpan duration = b - a; 

在时间安排课上有很多内置的方法可以满足你的需求

 duration.TotalSeconds duration.TotalMinutes 

更多信息可以在这里find。

尝试以下

 double hours = (ba).TotalHours; 

如果您只希望小时差异不包括天数差异,则可以使用以下内容

 int hours = (ba).Hours; 

这两个属性之间的差异主要是当时差超过1天时才会出现。 Hours属性只会报告两个date之间的实际时差。 因此,如果两个date相差100年,但在当天同时发生,则小时数将返回0.但TotalHours将返回两个date(本例中为87.6万小时)之间发生的小时数之差。

另一个区别是TotalHours将返回小数小时。 这可能是也可能不是你想要的。 如果没有,Math.Round可以根据自己的喜好进行调整。

你是否在寻找:

 int Difference = (ab).Hours; 
 int hours = (int)Math.Round((b - a).TotalHours) 
 var theDiff24 = (ba).Hours 
 TimeSpan X = b - a; 

X.totalhours可以使用更多的TimeSpan属性。

将使用此方法显示与时间b / w的时差。

  private void HoursCalculator() { var t1 = txtfromtime.Text.Trim(); var t2 = txttotime.Text.Trim(); var Fromtime = t1.Substring(6); var Totime = t2.Substring(6); if (Fromtime == "M") { Fromtime = t1.Substring(5); } if (Totime == "M") { Totime = t2.Substring(5); } if (Fromtime=="PM" && Totime=="AM" ) { var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim()); var dt2 = DateTime.Parse("1900-01-02 " + txttotime.Text.Trim()); var t = dt1.Subtract(dt2); //int temp = Convert.ToInt32(t.Hours); //temp = temp / 2; lblHours.Text =t.Hours.ToString() + ":" + t.Minutes.ToString(); } else if (Fromtime == "AM" && Totime == "PM") { var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim()); var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim()); TimeSpan t = (dt2.Subtract(dt1)); lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString(); } else { var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim()); var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim()); TimeSpan t = (dt2.Subtract(dt1)); lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString(); } } 

使用你的字段ID的

var t1捕获上午4:00的值

检查这个代码可能对某人有帮助。