J'ai besoin d'une fonction qui puisse retourner la différence entre les deux dates ci-dessous sous la forme de 24.
DateTime a = new DateTime(2008, 01, 02, 06, 30, 00);
DateTime b = new DateTime(2008, 01, 03, 06, 30, 00);
J'ai besoin d'une fonction qui puisse retourner la différence entre les deux dates ci-dessous sous la forme de 24.
DateTime a = new DateTime(2008, 01, 02, 06, 30, 00);
DateTime b = new DateTime(2008, 01, 03, 06, 30, 00);
Vous pouvez procéder comme suit :
TimeSpan duration = b - a;
Il y a beaucoup de méthodes intégrées dans la classe timespan pour faire ce dont vous avez besoin.
duration.TotalSeconds
duration.TotalMinutes
Plus d'informations sont disponibles ici .
Essayez ce qui suit
double hours = (b-a).TotalHours;
Si vous souhaitez simplement connaître la différence d'heures sans tenir compte de la différence de jours, vous pouvez utiliser la méthode suivante
int hours = (b-a).Hours;
La différence entre ces deux propriétés s'observe principalement lorsque le décalage horaire est supérieur à 1 jour. La propriété Hours n'indique que la différence horaire réelle entre les deux dates. Ainsi, si deux dates diffèrent de 100 ans mais se produisent au même moment de la journée, hours renvoie 0. Mais TotalHours renverra la différence entre le nombre total d'heures qui se sont écoulées entre les deux dates (876 000 heures dans ce cas).
L'autre différence est que TotalHours renvoie des fractions d'heures. Cela peut correspondre ou non à ce que vous souhaitez. Dans le cas contraire, Math.Round peut l'ajuster à votre convenance.
C'est la bonne réponse à la question, il veut que le résultat soit 24, ce qui est le cas. Bien sûr, il pourrait arrondir le nombre total d'heures lui-même assez facilement si c'est ce qu'il veut.
@James ma réponse produit 24 exactement. L'OP n'a pas spécifié que la valeur devait avoir un format numérique particulier.
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.