Sprache: C#
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);
}
}
}
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);
}
}
}
Alte URL:
/snippet/ist-zeitpunkt-von-zwei-date-time-objekte-gleich/15210
[code]// 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);[/code]
Ich finde es aber faszinierend, dass du dann die resultierende TimeSpan-Instanz per Equality-Operator vergleichst.
Wie wäre es denn mit:
[code]Date1.Equals(Date2);[/code]