¿Cómo obtengo la diferencia horaria entre dos DateTime
objetos usando C #?
159
El siguiente ejemplo muestra cómo hacer esto:
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);
Cuando se ejecuta esto imprime "30" ya que hay una diferencia de 30 minutos entre la fecha / hora.
El resultado de DateTime.Subtract(DateTime x)
es un objeto TimeSpan que proporciona otras propiedades útiles.
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss"))
. Ver: MSDN personalizada TimeSpan FormatoTotalMinutes
! (noMinutes
)Quieres la
TimeSpan
estructura:Existen varios métodos para recuperar los días, horas, minutos, segundos y milisegundos de esta estructura.
Si solo está interesado en la diferencia, entonces:
le dará la diferencia positiva entre los tiempos independientemente del orden.
Si acaba de obtener el componente de tiempo, pero los tiempos se pueden dividir para la medianoche, debe agregar 24 horas al intervalo para obtener la diferencia real:
fuente
Lo que necesita es usar el método Restar de las clases DateTime , que devuelve un TimeSpan .
fuente
La forma en que generalmente lo hago es restando los dos DateTime y esto me da un TimeSpan que me dirá la diferencia.
Aquí hay un ejemplo:
fuente
SI ambos son valores UTC de fecha y hora que puede hacer
TimeSpan diff = dateTime1 - dateTime2;
De lo contrario, su probabilidad de obtener la respuesta correcta en cada caso posible es cero.
fuente
fuente
Necesitas usar un TimeSpan . Aquí hay un código de muestra:
fuente
TimeSpan sincelast = DateTime.Now - LastUpdate;
fuente
Puede usarlo de la siguiente manera para lograr la diferencia entre dos objetos Datetime. Supongamos que hay objetos DateTime dt1 y dt2 y luego el código.
fuente