我需要一个函数,可以将下面两个日期之间的差异返回为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;
TimeSpan类中有许多内置的方法可以满足您的需求,例如:
duration.TotalSeconds
duration.TotalMinutes
更多信息可以在这里找到。
尝试以下方法
double hours = (b-a).TotalHours;
如果你只想要小时数差异,而不包括天数差异,你可以使用以下代码:
int hours = (b-a).Hours;
这两个属性的区别主要在于时间差超过1天时才会显现。Hours属性仅报告两个日期之间实际的小时差异。因此,如果两个日期相差100年但在同一天发生,Hours将返回0。但是TotalHours将返回两个日期之间发生的总小时数的差异(在这种情况下为876,000小时)。您或许正在寻找以下内容:
int Difference = (a-b).Hours;
int hours = (int)Math.Round((b - a).TotalHours)
var theDiff24 = (b-a).Hours
使用此方法可以显示两个时间之间的时间差。
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进行操作
变量t1存储了一个值为4:00AM
检查这段代码可能对某些人有帮助。