web-dev-qa-db-ja.com

日時の時刻部分を比較する方法

私たちが持っているとしましょう

DateTime t1 = DateTime.Parse("2012/12/12 15:00:00.000");

そして

DateTime t2 = DateTime.Parse("2012/12/12 15:03:00.000");

C#でそれを比較し、どの時間が「より遅い」と言うには?

32
Developer

TimeOfDay プロパティを使用し、それに対して Compare を使用できます。

TimeSpan.Compare(t1.TimeOfDay, t2.TimeOfDay)

ドキュメントごと:

-1  if  t1 is shorter than t2.
0   if  t1 is equal to t2.
1   if  t1 is longer than t2.
70
Justin Pihony

<<=>>===演算子はすべて、DateTimeおよびTimeSpanオブジェクトで直接動作します。したがって、このようなものが機能します:

DateTime t1 = DateTime.Parse("2012/12/12 15:00:00.000");
DateTime t2 = DateTime.Parse("2012/12/12 15:03:00.000");

if(t1.TimeOfDay > t2.TimeOfDay) {
    //something
}
else {
    //something else
}
21
kaveman

使用する DateTime.Compare メソッド:

DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;

if (result < 0)
   relationship = "is earlier than";
else if (result == 0)
   relationship = "is the same time as";         
else
   relationship = "is later than";

Console.WriteLine("{0} {1} {2}", date1, relationship, date2);

編集:時刻を比較するだけで、日付を無視する場合は、他の人が示唆しているようにTimeOfDayを使用できます。より細かなものが必要な場合は、HourおよびMinuteプロパティも使用できます。

2
mgnoonan