我需要,可以返回下面两个日期之间的差作为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

更多信息可以此处发现

其他提示

尝试使用以下

double hours = (b-a).TotalHours;

如果您只想小时的时差排除天的差异,你可以使用以下

int hours = (b-a).Hours;

这两个属性之间的差异主要见于当时间差超过1天。 hours属性将只报告两个日期之间的实际小时的时差。因此,如果两个日期100年的差别,但在当天同一时间发生,小时将返回0。但TotalHours将在这两个日期(在这种情况下876000小时)之间发生的时间总量收益之间的差异。

在其它不同的是,TotalHours将返回分数小时。这可能是也可能不是你想要的。如果没有,可以Math.Round它调整自己的喜好。

您也许寻找:

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

的时间差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字段的

<强>变种T1 捕获的值的上午04点

检查该代码可能是有帮助的人。

scroll top