Faire la difference entre deux dates ou heures en c#

francesdereve Messages postés 75 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 6 août 2007 - 16 juin 2006 à 18:27
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 16 juin 2006 à 19:40
J'ai deux dateTime qui contient le jour ainsi que l'heure ,je veux faire la difference pour trouver le nombre d'heure qui existe mais je n'arrive pas par exemple j'ai Mon premier DateTime qui contient 12/03/2006 12:37 et le second 12/03/2006 3:37
 mais ca devrait donner 3:00 h ca me donne9:00
Voici ce que j'ai fait
TimeSpan h=

new TimeSpan(d2.Ticks-d1.Ticks).Duration();MessageBox.Show(h.ToString());

FD
A voir également:

3 réponses

scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
16 juin 2006 à 18:57
Salut
Moi j'ai fais un truc comme ça:

DateTime ancien;
DateTime now = DateTime.Now;
TimeSpan interval = new TimeSpan();
interval = interval.Add(TimeSpan.FromDays((double)ancien.DayOfYear - now.DayOfYear));
interval = interval.Add(TimeSpan.FromHours((double)ancien.Hour - now.Hour));
interval = interval.Add(TimeSpan.FromMinutes((double)ancien.Minute - now.Minute));
interval = interval.Add(TimeSpan.FromSeconds((double)ancien.Second - now.Second));

Ensuite pour récupérer la diff en forme lisible : il y a les éléments Days, Hours ...

A++
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 juin 2006 à 19:36
Tu peux faire comme ceci :

double x =
DateTime.Now.Subtract(
new
DateTime(2006, 6, 16, 17, 0, 0)).TotalHours;

int xx       =
DateTime.Now.Subtract(
new
DateTime(2006, 6, 16, 17, 0, 0)).Hours;

VC# forever
=13319
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 juin 2006 à 19:40
Sinon, c'est normal que ça te donne 9h car 12-3 ça fait 9...
3h est différent de 15h !!!! (en tout cas en Europe)

VC# forever
=13319
0
Rejoignez-nous