Wie man die Differenz zwischen zwei Terminen in C# berechnet

Puneet Dobhal 12 Oktober 2023
  1. Berechnen der Differenz zwischen zwei Datumsangaben in C# unter Verwendung des - Operators
  2. Berechnen der Differenz zwischen zwei Daten in C# mit der Methode DateTime.Subtract
Wie man die Differenz zwischen zwei Terminen in C# berechnet

In diesem Artikel werden wir verschiedene Methoden zur Berechnung der Differenz zwischen zwei Daten in C# untersuchen. Wir werden die Struktur DateTime für die Darstellung von Date und die Struktur TimeSpan verwenden, um das Ergebnis zu speichern.

Wir werden die folgende Definition von Datum verwenden, wobei wir mit Hilfe des Konstruktors DateTime einen Zeitpunkt des Datums angeben.

DateTime sample_date = new DateTime(2010, 6, 14);

Wie Sie vielleicht bemerkt haben, umfassen die Elemente des Datums in der Deklaration das Jahr, den Monat und den Tag.

Sehen wir uns nun die verschiedenen Methoden zur Berechnung der Differenz zwischen zwei Tagen in Bezug auf die Anzahl der Tage an.

Berechnen der Differenz zwischen zwei Datumsangaben in C# unter Verwendung des - Operators

Die einfachste Lösung ist die Subtraktion der beiden Daten mit dem - Operator. Da die Objekte vom gleichen Datentyp DateTime sind, können sie direkt subtrahiert werden. Der folgende Code stellt diese Methode dar.

using System;
public class Sample {
  public static void Main() {
    DateTime date_1 = new DateTime(2019, 02, 12);
    DateTime date_2 = new DateTime(2020, 04, 10);

    /*Substraction (minus) of same data types yields difference in days*/
    Console.WriteLine("Difference in days: " + (date_2 - date_1).Days);
  }
}

Ausgabe:

Difference in days: 423

Berechnen der Differenz zwischen zwei Daten in C# mit der Methode DateTime.Subtract

Die Methode DateTime.Subtract ist ein weiterer effizienter Weg, dies zu erreichen. Sie gibt die Differenz zwischen zwei Daten zurück, und das Ergebnis kann im Datentyp TimeSpan gespeichert werden.

using System;
public class Sample {
  public static void Main() {
    DateTime date_1 = new DateTime(2019, 02, 12);
    DateTime date_2 = new DateTime(2020, 04, 10);

    TimeSpan Diff_dates = date_2.Subtract(date_1);
    Console.WriteLine("Difference in days: " + Diff_dates.Days);
  }
}

Ausgabe:

Difference in days: 423

Die DateTime-Struktur kann auch verwendet werden, um die Tageszeit zusammen mit dem Datum anzugeben. In diesem Fall ist bei der Verwendung der Methode DateTime.Subtract sicherzustellen, dass die Daten in denselben Zeitzonen liegen. Andernfalls enthält das Ergebnis die Differenz zwischen den Zeitzonen.

Darüber hinaus können wir mit Hilfe des doppelten Satzes von Eigenschaften der Klasse TimeSpan bei Bedarf auch weitere Informationen extrahieren. Wie im Beispielcode unten haben wir das Präfix Total - TotalDays verwendet, um das Ergebnis in Bruchteilen zu erhalten.

using System;
public class Sample {
  public static void Main() {
    /*Definations include time of day */
    DateTime date_1 = new DateTime(2019, 02, 12, 8, 0, 0);
    DateTime date_2 = new DateTime(2020, 04, 10, 12, 0, 0);

    TimeSpan Diff_dates = date_2.Subtract(date_1);
    Console.WriteLine("Difference in Days = " + Diff_dates.Days);
    Console.WriteLine("Exact timespan in Days = " + Diff_dates.TotalDays);
  }
}

Ausgabe:

Difference in Days = 423
Exact timespan in Days = 423.166666666667

Beachten Sie beim Abschließen der für Ihre Anwendung geeigneten Methode, dass die - Operator-Methode den Zeitzonenfaktor von Daten nicht berücksichtigt. Wenn also die von Ihnen verwendeten Daten Zeitzonen angeben, ist die DateTime.Subtract-Methode die naheliegende Wahl.

Verwandter Artikel - Csharp DateTime