2011-03-03 17 views
7

Duplicar posibles:
Showing Difference between two datetime values in hours¿Diferencia entre 2 fechas y horas en horas?

Hola,

¿hay una manera fácil de obtener la diferencia entre 2 DateTime-Valores en horas?

Lo sé, es una posibilidad de calcularse por obtener para cada diferencia día 24h, por cada mes 188h y así sucesivamente ... pero ¿hay una manera fácil dado mybe?

Ejemplo:

1) 01.02.2010 12:00 
2) 03.03.2011 14:00 

=? Differnce horas

+4

¿De qué manera cada mes tiene 188 horas? –

Respuesta

36

Es bastante simple:

TimeSpan diff = secondDate - firstDate; 
double hours = diff.TotalHours; 

Tenga en cuenta que si se han tomado estas DateTime valores localmente, los resultados no pueden ser el número de transcurrido horas. Por ejemplo, podría tener un DateTime de medianoche y uno de 2am, pero solo había transcurrido una hora, porque los relojes avanzaban a la 1am. Esto puede o no ser un problema para usted. No será un problema si se trata de valores UTC DateTime.

1
TimeSpan difference = firstDateTime - secondDateTime; 
double diffInHours = difference.TotalHours 
+0

Pero creo que es cierto que si "diferencia de TimeSpan = secondDateTime -firstDateTime;" ! –

+0

@combo_ci depende completamente de lo que estás tratando de hacer. Ni firstDateTime ni secondDateTime dicated que era el anterior o posterior, ni si diffInHours sería positivo o negativo, ni cuál era requerido. Es un ejemplo genérico del uso de la aritmética TimeSpan –

5

(dateTime1-dateTime2).TotalHours darán un doble con la diferencia total de horas entre los dos.

4
date1.Subtract(date2).TotalHours 
1

DateTime.Subtract(DateTime) devolverá un TimeSpan que tenga una propiedad TotalHours.

+0

Excepto que no desea utilizar la propiedad Horas, porque está limitado a -23 a 23. –

+0

De hecho, TotalHours probablemente sería mejor :) – Ian

Cuestiones relacionadas