Frage Unterschied zwischen zwei DateTimes C #?


Ich brauche eine Funktion, die den Unterschied zwischen den beiden folgenden Daten als 24 zurückgeben kann.

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

75
2018-05-10 13:58


Ursprung


Antworten:


Sie können Folgendes tun:

TimeSpan duration = b - a;

Es gibt viele eingebaute Methoden in der Zeitspannenklasse, um das zu tun, was Sie brauchen, d.h.

duration.TotalSeconds
duration.TotalMinutes

Weitere Informationen können gefunden werden Hier.


144
2018-05-10 14:11



Versuche Folgendes

double hours = (b-a).TotalHours;

Wenn Sie nur die Stundendifferenz ohne den Unterschied in Tagen möchten, können Sie Folgendes verwenden

int hours = (b-a).Hours;

Der Unterschied zwischen diesen beiden Eigenschaften wird hauptsächlich dann festgestellt, wenn der Zeitunterschied mehr als 1 Tag beträgt. Die Stunden-Eigenschaft wird nur den tatsächlichen Stundenunterschied zwischen den zwei Daten melden. Wenn also zwei Daten sich um 100 Jahre unterscheiden, aber gleichzeitig am Tag auftreten, wird Stunden 0 zurückgeben. TotalHours gibt jedoch die Differenz zwischen der Gesamtanzahl der Stunden zwischen den beiden Daten zurück (in diesem Fall 876.000 Stunden).

Der andere Unterschied besteht darin, dass TotalHours die Nachkommastellen zurückgibt. Dies kann oder kann nicht sein, was Sie wollen. Wenn nicht, kann Math.Round es nach Ihren Wünschen anpassen.


15
2018-05-10 13:59



Suchst du vielleicht nach:

int Difference = (a-b).Hours;

2
2018-05-10 14:03



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

1
2018-05-10 14:14



var theDiff24 = (b-a).Hours

0
2018-05-10 14:19



Der Zeitunterschied zwischen S / W und Zeit wird mit dieser Methode angezeigt.

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

Verwenden Sie Ihre Feld-IDs

var t1 erfasst einen Wert von 4:00 UHR

Überprüfen Sie, ob dieser Code für jemanden hilfreich sein kann.


0
2018-02-25 06:41