簡體   English   中英

兩個DateTimes C#之間的區別?

[英]Difference between two DateTimes C#?

我需要一個函數,可以將以下兩個日期之間的差異返回為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天時,主要看到這兩個屬性之間的差異。 The Hours屬性僅報告兩個日期之間的實際小時差異。 因此,如果兩個日期相差100年但是在當天的同一時間發生,則小時數將返回0.但是TotalHours將返回兩個日期之間發生的總小時數之間的差異(在這種情況下為876,000小時)。

另一個區別是TotalHours將返回小時數。 這可能是也可能不是你想要的。 如果沒有,Math.Round可以根據自己的喜好進行調整。

您是否正在尋找:

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

使用此方法將顯示時間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 AM的值

檢查此代碼可能對某人有幫助。

var theDiff24 = (b-a).Hours

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM