Como obtenho a diferença de horário entre dois DateTime
objetos usando C #?
159
O exemplo a seguir demonstra como fazer isso:
DateTime a = new DateTime(2010, 05, 12, 13, 15, 00);
DateTime b = new DateTime(2010, 05, 12, 13, 45, 00);
Console.WriteLine(b.Subtract(a).TotalMinutes);
Quando executado, isso imprime "30", pois há uma diferença de 30 minutos entre a data / hora.
O resultado DateTime.Subtract(DateTime x)
é um objeto TimeSpan que fornece outras propriedades úteis.
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss"))
. Veja: Formato TimeSpan personalizado do MSDNTotalMinutes
! (notMinutes
) #Você quer a
TimeSpan
estrutura:Existem vários métodos para recuperar dias, horas, minutos, segundos e milissegundos dessa estrutura.
Se você está interessado apenas na diferença, então:
fornecerá a diferença positiva entre os horários, independentemente do pedido.
Se você acabou de obter o componente de horário, mas os horários podem ser divididos pela meia-noite, é necessário adicionar 24 horas ao intervalo para obter a diferença real:
fonte
O que você precisa é usar o método Subtract das classes DateTime , que retorna um TimeSpan .
fonte
O jeito que eu costumo fazer isso é subtrair os dois DateTime e isso me dá um TimeSpan que me dirá o diff.
Aqui está um exemplo:
fonte
SE ambos são valores de data e hora UTC, você pode fazer
TimeSpan diff = dateTime1 - dateTime2;
Caso contrário, sua chance de obter a resposta correta em todos os casos possíveis é zero.
fonte
fonte
Você precisa usar um TimeSpan . Aqui está um código de exemplo:
fonte
TimeSpan sincelast = DateTime.Now - LastUpdate;
fonte
Você pode usar da seguinte maneira para obter a diferença entre dois Objetos do Datetime. Suponha que haja objetos DateTime dt1 e dt2 e o código.
fonte