Verifique la diferencia en segundos entre dos tiempos


103

Hola a todos. Actualmente estoy trabajando en un proyecto en el que cuando ocurre un determinado evento, se agregan detalles sobre el evento, incluida la hora en que ocurrió el evento, en una matriz de lista.

Una vez que el método ha terminado, paso la lista a otro método que verifica sus valores. Antes de pasar por el ciclo, verifico la hora actual de mi PC y necesito verificar si la diferencia entre el tiempo ahorrado en la matriz de lista y la hora actual es mayor a 5 segundos.

¿Cómo haría yo para hacer esto?

Respuestas:


267

Asumiendo dateTime1y dateTime2son DateTimevalores:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

En su caso, usaría DateTime.Nowcomo uno de los valores y el tiempo en la lista como el otro. Tenga cuidado con el pedido, ya que el resultado puede ser negativo si dateTime1es anterior a dateTime2.


3
Gracias, por cierto, var terminará siendo el doble: TotalSeconds
Loader el

3
Gracias ... Acabo de ser mordido por usar (Milisegundos) por error cuando realmente debería haber usado (TotalMillisegundos) ... ouch.
Andrew Paté


15

Esta versión siempre devuelve el número de segundos de diferencia como un número positivo (el mismo resultado que la solución de @ freedeveloper):

var seconds = System.Math.Abs((date1 - date2).TotalSeconds);

4

Utilizo esto para evitar el intervalo negativo.

var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;

4
Use en su Math.Abslugar, este código es menos legible y eficaz que simplemente usar la respuesta anterior.
ProgramFast
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.