2010-09-28 8 views
2

en utilisant les éléments suivants: -C#: le calcul du temps diff

TimeSpan diff = dt2.TimeOfDay - dt1.TimeOfDay; 

d1, d2 sont 2 variables de type DateTime et ils ont obtenu des valeurs dans les

Maintenant, je veux vérifier s'il y a une différence de 12 heures b/w les

if(diff>12) 

{ 
//do stuff 
} 

maintenant bien sûr il ne sera pas coutume coz 12 est un int..so comment puis-je vérifier si le temps est plus de 12 heures ou pas ?? besoin d'aide à cette instruction if only..thnx

Répondre

11

La solution générale est de construire un objet TimeSpan qui correspond à la coupure:

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

Si la coupure correspond à un multiple d'un ' nice » unité de temps comme jours, heures, minutes, secondes ou millisecondes comme dans votre exemple, vous pouvez utiliser la propriété TotalXXX de TimeSpan, comme d'autres ont posté:

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

ou diff.TotalHours> 12 .... mais meh! – Adrian

+0

les deux méthodes vont vérifier la même chose? – Serenity

+0

Oui, ils vont vérifier exactement la même chose. –

2

utilisation

if(diff.TotalHours > 12){ 
    .... 
} 
0
TimeSpan diff = dt2.Substract(dt1); 
if (diff.TotalHours > 12) 
{ 
    // Do something 
} 
2

Avez-vous déjà utilisé IntelliSense et remarqué les propriétés Hours et TotalHours sur l'objet diff TimeSpan?

1
TimeSpan.FromHours you need to use to find the difference 
3

Pour répondre clairement à votre question, vous utilisez l'une des propriétés du struct TimeSpan, généralement la propriété TotalHours. Il y a d'autres réponses, plus simples, qui vous indiquent comment faire cela, donc je ne vais pas le répéter. Cependant, cela signifie que je dois faire confiance à votre question pour être complète, et je pense que le fait d'ignorer la partie date vous donnera des cas limites dont vous devez au moins être au courant.

Par exemple, avec les deux valeurs d'heure suivantes, combien de temps y a-t-il entre elles?

 
18:00 
08:00 

est-il -10 heures ou 14 heures entre ces deux?

Pour répondre correctement à votre question, personnellement, je voudrais que vous me disiez comment vous avez l'intention d'utiliser ces valeurs, ce que cela signifie pour vous, et donnez quelques exemples.

+0

Alors dois-je utiliser TotalHours() ou FromHours() ?? – Serenity

+1

Son point est que l'utilisation de TimeOfDay vous donnera ces cas de coin. Ce n'est pas grave si vous utilisez TotalHours ou FromHours. Puisque TimeOfDay dépouillera la partie date, 18:00 mardi aura une valeur "supérieure" à 14:00 mercredi, et ce n'est probablement pas la fonctionnalité que vous recherchez. Une raison pour laquelle vous utilisez TimeOfDay, et pas seulement dt2 - dt1? –

+0

Mon travail de jour travaille avec des dates, des heures et des périodes de tels, et je suis juste intrinsèquement méfiant quand vous commencez à comparer l'heure du jour seulement et commencer à demander "combien d'heures entre ceux-ci". J'ai besoin de savoir ce que vous avez l'intention d'utiliser pour cette valeur, quel sens cela a pour vous.En tant que tel, je veux que vous répondiez à ma question, est-il -10 heures ou +14 heures entre les deux valeurs de l'heure que j'ai posté. –