Feedback

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

Veröffentlicht von am 25.01.2019
(2 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
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

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 08.07.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 16.08.2019:
Wie wäre es denn mit:
Date1.Equals(Date2);
 

Logge dich ein, um hier zu kommentieren!