web-dev-qa-db-fra.com

Comment comparer la partie temps de datetime

Disons que nous avons

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

et

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

Comment le comparer en C # et dire quelle heure est "plus tard que"?

32
Developer

Vous pouvez utiliser la propriété TimeOfDay et utiliser la Compare contre elle.

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

Selon la documentation:

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

Les opérateurs <, <=, >, >=, ==, Fonctionnent tous directement sur DateTime et TimeSpan objets. Donc, quelque chose comme ça fonctionne:

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

Utilisez le DateTime.Compare méthode:

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);

Modifier: Si vous voulez simplement comparer les heures et ignorer la date, vous pouvez utiliser le TimeOfDay comme d'autres l'ont suggéré. Si vous avez besoin de quelque chose de moins fin, vous pouvez également utiliser les propriétés Hour et Minute.

2
mgnoonan