160 votes

Comment comparer DateTime en C# ?

Je ne veux pas que l'utilisateur donne la date ou l'heure de retour.

Comment puis-je comparer si la date et l'heure saisies sont INFÉRIEURES À l'heure actuelle ?

Si la date et l'heure actuelles sont 17 juin 2010, 12 h25, je veux que l'utilisateur ne puisse pas donner la date avant 17 juin 2010 et l'heure avant 12 h25.

Comme mon retour de fonction faux si l'heure saisie par l'utilisateur est 16-Jun-2010 et l'heure 12:24 PM

328voto

MuSTaNG Points 588

Microsoft a également implémenté les opérateurs « < » et « > ». Vous les utilisez donc pour comparer deux dates.

if (date1 < DateTime.Now)
   Console.WriteLine("Less than the current time!");

199voto

Ahmet Kakıcı Points 3045

MSDN : 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);
// The example displays the following output:
//    8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM

6voto

Si vous avez deux DateTime qui se ressemblent, mais que Compare ou Equals ne renvoie pas ce que vous attendez, voici comment les comparer.

Voici un exemple avec une précision de 1 milliseconde :

bool areSame = (date1 - date2) > TimeSpan.FromMilliseconds(1d);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X