Vérifiez la différence en secondes entre deux fois


102

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

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

Comment pourrais-je procéder.

Réponses:


266

En supposant dateTime1et dateTime2sont des DateTimevaleurs:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

Dans votre cas, vous utiliseriez DateTime.Nowcomme une des valeurs et l 'heure dans la liste comme l' autre. Faites attention à la commande, car le résultat peut être négatif s'il dateTime1est antérieur à dateTime2.


3
Merci, au fait, var finira par être double: TotalSeconds
Loaderon

3
Merci ... Je viens de me faire mordre en utilisant (Millisecondes) par erreur alors que j'aurais dû vraiment utiliser (TotalMilliseconds) ... aïe.
andrew pate


15

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

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

4

J'utilise ceci pour éviter un intervalle négatif.

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

4
Utilisez à la Math.Absplace, ce code est moins lisible et performant que d'utiliser simplement la réponse ci-dessus.
ProgrammeFast
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.