2 votes

C# : calcul de la différence de temps

En utilisant les éléments suivants :-

TimeSpan diff = dt2.TimeOfDay - dt1.TimeOfDay;

d1, d2 sont 2 variables de type DateTime et ils ont des valeurs en eux

Maintenant, je veux vérifier s'il y a une différence de 12 heures entre les deux.

if(diff>12)

{
//do stuff
}

Maintenant, bien sûr, ce ne sera pas le cas parce que 12 est un entier alors comment puis-je vérifier si le temps est supérieur à 12 heures ou non ?

11voto

Ani Points 59747

La solution générale consiste à construire un TimeSpan qui correspond à la coupure :

if(diff > TimeSpan.FromHours(12))
{
   ...
}

Si la coupure correspond à un multiple d'une "belle" unité de temps comme les jours, les heures, les minutes, les secondes ou les millisecondes, comme dans votre exemple, vous pouvez utiliser la fonction TotalXXX propriété de TimeSpan comme d'autres l'ont fait :

if(diff.TotalHours > 12)
{
   ...
}

3voto

Lasse V. Karlsen Points 148037

Pour répondre clairement à votre question, vous utilisez l'une des propriétés de l'interface utilisateur de l'ordinateur. TimeSpan struct, généralement la Heures totales propriété. Il existe d'autres réponses, plus simples, qui vous expliquent comment faire, je ne vais donc pas les répéter.

Cependant, cela signifie que je dois croire que votre question est complète, et je pense que le fait d'ignorer la partie "date" vous donnera des cas limites que vous devez au moins connaître.

Par exemple, avec les deux valeurs d'heure du jour suivantes, combien de temps les sépare ?

18:00
08:00

Est-ce que c'est -10 heures, ou 14 heures entre ces deux-là ?

Pour répondre correctement à votre question, j'aimerais personnellement que vous me disiez comment vous comptez utiliser ces valeurs, ce que cela signifie pour vous, et que vous donniez quelques exemples.

2voto

Øyvind Bråthen Points 25211

Utiliser

if( diff.TotalHours > 12){
  ....
}

2voto

slugster Points 27178

Avez-vous réellement utilisé intellisense et remarqué que le Hours y TotalHours sur l'objet diff TimeSpan ?

1voto

anishMarokey Points 6895
TimeSpan.FromHours you need to use to find the difference

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