241 votes

Affichage de la différence entre deux valeurs datetime en heures

Je suis de la récupération de deux valeurs de date et heure à partir de la base de données. Une fois que la valeur est récupérée, j'ai besoin de la différence entre les deux valeurs. Pour cela, j'ai créer un laps de temps variable pour stocker la différence entre les 2 valeurs de date.

TimeSpan? variable = datevalue1 - datevalue2;

Maintenant, j'ai besoin de montrer la différence qui est stocké dans le laps de Temps variable, en termes de nombre d'heures. J'ai appelé ce lien , mais ne pouvait pas appliquer la même chose pour une raison quelconque. Comment dois-je faire? Je suis à l'aide de C# sur un projet MVC. J'simple besoin de montrer la différence de la valeur en heures?

EDIT: Depuis timespan est nullable, je ne pouvais pas utiliser le total des heures de propriété. Maintenant je peux l'utiliser en faisant TimeSpanVal.De la valeur.Totalheures;

276voto

MarkKGreenway Points 2987

vous voudrez peut-être aussi regarder

 var hours = (datevalue1 - datevalue2).TotalHours;
 

136voto

ho1 Points 31752

Je pense que vous êtes confus parce que vous n'avez pas déclaré un TimeSpan vous avez déclaré un TimeSpan? qui est un nullable TimeSpan . Supprimez le point d'interrogation si vous n'avez pas besoin qu'il soit annulable ou utilisez variable.Value.TotalHours .

125voto

safi Points 703

Dans l'exemple, nous créons deux datetime objets, l'un avec l'époque actuelle et une autre avec 75 secondes ajoutées à l'heure actuelle. Ensuite, nous allons appeler la méthode .Soustraire() sur le deuxième objet DateTime. Cela renvoie un objet TimeSpan. Une fois que nous obtenons l'objet TimeSpan, nous pouvons utiliser les propriétés de la plage de Temps pour obtenir le nombre réel d'Heures, de Minutes et de Secondes.

DateTime startTime = DateTime.Now;

 DateTime endTime = DateTime.Now.AddSeconds( 75 );

 TimeSpan span = endTime.Subtract ( startTime );
 Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
 Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
 Console.WriteLine( "Time Difference (hours): " + span.Hours );
 Console.WriteLine( "Time Difference (days): " + span.Days );

Résultat:

La Différence de temps (en secondes): 15 La Différence de temps (en minutes): 1 La Différence de temps (heures): 0 La Différence de temps (jours): 0

41voto

Ilya Kogan Points 7357

Y a-t-il une raison pour laquelle vous utilisez Nullable ?

Si vous souhaitez utiliser Nullable vous pouvez écrire variable.Value.TotalHours .

Ou vous pouvez simplement écrire: (datevalue1 - datevalue2).TotalHours .

8voto

levteck Points 346

Voici un autre exemple de soustraction de deux dates en C # ...

 if ( DateTime.Now.Subtract(Convert.ToDateTime(objDateValueFromDatabase.CreatedOn)).TotalHours > 24 ) 
{ 
... 
} 
 

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