İki DateTimes C # arasındaki fark?


100

Aşağıdaki iki tarih arasındaki farkı 24 olarak döndürebilecek bir işleve ihtiyacım var.

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

Yanıtlar:


188

Aşağıdakileri yapabilirsiniz:

TimeSpan duration = b - a;

Zaman dilimi sınıfında ihtiyacınız olan şeyi yapmak için pek çok yerleşik yöntem vardır.

duration.TotalSeconds
duration.TotalMinutes

Daha fazla bilgi burada bulunabilir .


19

Takip etmeyi dene

double hours = (b-a).TotalHours;

Sadece gün farkı hariç saat farkını istiyorsanız, aşağıdakileri kullanabilirsiniz.

int hours = (b-a).Hours;

Bu iki özellik arasındaki fark esas olarak saat farkı 1 günden fazla olduğunda görülür. Hours özelliği yalnızca iki tarih arasındaki gerçek saat farkını bildirir. Dolayısıyla, iki tarih 100 yıl farklılık gösteriyorsa ancak gün içinde aynı anda gerçekleşmişse, saatler 0 değerini döndürür. Ancak Toplam Saat, iki tarih arasında gerçekleşen toplam saat miktarı arasındaki farkı döndürür (bu durumda 876.000 saat).

Diğer fark, TotalHours'un kesirli saatleri döndürmesidir. İstediğiniz bu olabilir veya olmayabilir. Değilse, Math.Round bunu beğeninize göre ayarlayabilir.





-1

Bu yöntemi kullanarak zaman farkı s / b gösterilecektir.

 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();
        }
    }

alan kimliğinizi kullanın

var t1 , 4:00 AM değerini yakalar

bu kodu kontrol et birisine yardımcı olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.