時刻を無視し、年月日だけで比較するには Date プロパティ を使用します。
日付の比較方法
DateTime型を 年月日のみで比較するには Date プロパティ を使用します。Date プロパティは DateTimeオブジェクト の 年月日 のみ返します。(正確には時刻を 0時0分0秒 にして返します。)if (DateTimeオブジェクト1.Date == DateTimeオブジェクト2.Date)
{
// 同じ日付
}
else if (DateTimeオブジェクト1.Date > DateTimeオブジェクト2.Date)
{
// DateTimeオブジェクト1 のほうが未来の日付
}
else
{
// DateTimeオブジェクト2 のほうが未来の日付
}
サンプルコード
using System;
// 日時を指定して DateTime を初期化
DateTime datetime1 = DateTime.Parse("2099/01/02 10:20");
DateTime datetime2 = DateTime.Parse("2099/01/02 23:00");
// 日付のみ比較
if (datetime1.Date == datetime2.Date)
{
System.Console.WriteLine("同じ日付です。");
}
else if (datetime1.Date > datetime2.Date)
{
System.Console.WriteLine("datetime1 のほうが進んでいます。");
}
else
{
System.Console.WriteLine("datetime2 のほうが進んでいます。");
}
// 日付と日時を比較
if (datetime1 == datetime2)
{
System.Console.WriteLine("同じ日時です。");
}
else if (datetime1 > datetime2)
{
System.Console.WriteLine("datetime1 のほうが進んでいます。");
}
else
{
System.Console.WriteLine("datetime2 のほうが進んでいます。");
}
- 5 - 6行目: 同じ 年月日、時刻違いで DateTime の初期化をしています。
- 9行目: Dateプロパティ を使用し、年月日 のみで比較しています。
- 11行目: 年月日 は同じなので "同じ日付です。" が出力されます。
- 24 - 34行目: Dateプロパティ を使用せずに比較しているので "datetime2 のほうが進んでいます。" が出力されます。

検証環境
- .NET 5.0
- Microsoft Visual Studio Professional 2019 Version 16.9.5
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.985 Experience: Windows Feature Experience Pack 120.2212.2020.0