Feedback

C# - Ist Zeitpunkt von zwei Date-Time Objekte gleich?

Veröffentlicht von am 1/25/2019
(3 Bewertungen)
Möchte man herausfinden, ob zwei DateTime Objekte exakt den gleichen Zeitpunkt angeben, kann man sie einfach voneinander subtrahieren.
Bleibt eine Differenz von 0 übrig, sind beide Zeitpunkte gleich. Die Ausgabe für dieses Beispiel auf der Console ist:

date1 und date2 gleich? True
date1 und date3 gleich? False
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var date1 = new DateTime(2019, 11, 03);
            var date2 = new DateTime(2019, 11, 03);
            var date3 = new DateTime(2019, 11, 04);

            Console.WriteLine("date1 und date2 gleich? {0}", AreDatesEqual(date1, date2));
            Console.WriteLine("date1 und date3 gleich? {0}", AreDatesEqual(date1, date3));

            Console.Read();
        }

        private static bool AreDatesEqual(DateTime date, DateTime dateToCompare)
        {
            return (date - dateToCompare) == new TimeSpan(0);
        }
    }
}

Abgelegt unter DateTime, gleich, vergleichen.

2 Kommentare zum Snippet

Nuffin schrieb am 7/8/2019:
// Oder man schaut 3 Sekunden in die Dokumentation, stellt fest, dass DateTime den Equality-Operator überlädt, und vergleicht einfach:
var eq = d1 == d2;

// Alternativ überladen fast alle Framework Typen, bei denen Wertvergleich Sinn ergibt, die Equals Methode, weshalb das hier ebenfalls funktioniert.
eq = d1.Equals(d2);
eq = object.Equals(d1, d2);


Ich finde es aber faszinierend, dass du dann die resultierende TimeSpan-Instanz per Equality-Operator vergleichst.
FormFollowsFunction schrieb am 8/16/2019:
Wie wäre es denn mit:
Date1.Equals(Date2);
 

Logge dich ein, um hier zu kommentieren!