153 votes

Vérifier la différence en secondes entre deux temps

Bonjour à tous Je travaille actuellement sur un projet où, lorsqu'un certain événement se produit, les détails de cet événement, y compris l'heure à laquelle il s'est produit, sont ajoutés dans un tableau de liste.

Une fois la méthode terminée, je transmets la liste à une autre méthode qui vérifie ses valeurs. Avant de passer par la boucle, je vérifie l'heure actuelle de mon PC et je dois vérifier si la différence entre le temps enregistré dans le tableau de la liste et l'heure actuelle est supérieure à 5 secondes.

Comment dois-je m'y prendre ?

362voto

Jon Points 194296

En supposant que dateTime1 y dateTime2 sont DateTime valeurs :

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

Dans votre cas, vous utiliserez DateTime.Now comme l'une des valeurs et le temps dans la liste comme l'autre. Faites attention à l'ordre, car le résultat peut être négatif si dateTime1 est plus tôt que dateTime2 .

30voto

rich.okelly Points 24144

DateTime a un Méthode de soustraction et un surchargé - opérateur pour une telle occasion :

DateTime now = DateTime.UtcNow;
TimeSpan difference = now.Subtract(otherTime); // could also write `now - otherTime`
if (difference.TotalSeconds > 5) { ... }

24voto

stevieg Points 63

Cette version renvoie toujours le nombre de secondes de différence comme un nombre positif (même résultat que la solution de @freedeveloper) :

var seconds = System.Math.Abs((date1 - date2).TotalSeconds);

4voto

freedeveloper Points 2087

Je l'utilise pour éviter les intervalles négatifs.

var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;

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