Verifique a diferença em segundos entre duas vezes


100

Oi pessoal Estou trabalhando em um projeto onde, quando um determinado evento acontece, detalhes sobre o evento, incluindo a hora em que o evento ocorreu, são adicionados a uma matriz de lista.

Depois que o método termina, passo a lista para outro método que verifica seus valores. Antes de passar pelo loop, verifico a hora atual do meu PC e preciso verificar se a diferença entre o tempo economizado na matriz da lista e a hora atual é maior que 5 segundos.

Como eu faria isso.

Respostas:


264

Assumindo dateTime1e dateTime2são DateTimevalores:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

No seu caso, você usaria DateTime.Nowcomo um dos valores e o tempo na lista como o outro. Tenha cuidado com a ordem, pois o resultado pode ser negativo se dateTime1for anterior a dateTime2.


3
Obrigado, a propósito, var vai acabar sendo o dobro: TotalSeconds
Loaderon

3
Obrigado ... Acabei de ser mordido por usar (Milissegundos) por engano, quando deveria ter realmente usado (TotalMillisegundos) ... ai.
andrew pate de


15

Esta versão sempre retorna o número de segundos de diferença como um número positivo (mesmo resultado da solução de @freedeveloper):

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

4

Eu uso isso para evitar intervalo negativo.

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

4
Use Math.Abs, em vez disso, este código é menos legível e tem menos desempenho do que apenas usar a resposta acima.
Programa rápido de
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.