代码之家  ›  专栏  ›  技术社区  ›  abmv

两个日期时间之间的差异c?

  •  82
  • abmv  · 技术社区  · 15 年前

    我需要一个函数,它可以将下面两个日期之间的差异返回为24。

    DateTime a = new DateTime(2008, 01, 02, 06, 30, 00);
    DateTime b = new DateTime(2008, 01, 03, 06, 30, 00);
    
    6 回复  |  直到 5 年前
        1
  •  156
  •   Joey Robert    15 年前

    您可以执行以下操作:

    TimeSpan duration = b - a;
    

    TimeSpan类中有很多内置方法可以满足您的需要,即

    duration.TotalSeconds
    duration.TotalMinutes
    

    可以找到更多信息 here .

        2
  •  16
  •   JaredPar    15 年前

    尝试以下操作

    double hours = (b-a).TotalHours;
    

    如果您只想计算小时差(不包括天数差),可以使用以下内容

    int hours = (b-a).Hours;
    

    这两种性质的差异主要表现在时间差大于1天时。Hours属性将只报告两个日期之间的实际时数差异。因此,如果两个日期相差100年,但同时发生在一天中,小时数将返回0。但是total hours将返回两个日期之间发生的总小时数的差额(在本例中为876000小时)。

    另一个区别是总小时数将返回分数小时。这可能是你想要的,也可能不是。如果没有,数学四舍五入可以调整到你喜欢的程度。

        3
  •  3
  •   Vilx-    15 年前

    您是否正在寻找:

    int Difference = (a-b).Hours;
    
        4
  •  1
  •   Damien    11 年前
    int hours = (int)Math.Round((b - a).TotalHours)
    
        5
  •  0
  •   diadiora    15 年前
    var theDiff24 = (b-a).Hours
    
        6
  •  0
  •   Darshan    8 年前

    使用此方法将显示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点

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