¿Cómo obtengo la diferencia de tiempo entre dos objetos DateTime
usando C#?¿Cómo obtengo la diferencia horaria entre dos objetos DateTime usando C#?
Respuesta
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 esta imprime "30" ya que existe una diferencia de 30 minutos entre las fechas/horas.
El resultado de DateTime.Subtract(DateTime x)
es un TimeSpan Object que le da otras propiedades útiles.
desea que el TimeSpan
struct:
TimeSpan diff = dateTime1 - dateTime2;
objeto un intervalo de tiempo representa un intervalo de tiempo (duración de tiempo o tiempo transcurrido) que se mide como un número positivo o negativo de días, horas , minutos, segundos y fracciones de segundo. La estructura TimeSpan también se puede usar para representar la hora del día, pero solo si la hora no está relacionada con una fecha en particular.
Existen varios métodos para recuperar los días, horas, minutos, segundos y milisegundos de esta estructura.
Si son sólo interesado en la diferencia a continuación:
TimeSpan diff = Math.Abs(dateTime1 - dateTime2);
le dará la diferencia positiva entre el tiempo sin importar el orden.
Si acabas de salir del componente de tiempo, pero los tiempos se podría partir de la medianoche a continuación, es necesario agregar 24 horas al rango de medición para obtener la diferencia real:
TimeSpan diff = dateTime1 - dateTime2;
if (diff < 0)
{
diff = diff + TimeSpan.FromDays(1);
}
hi, si datetime2 es 09:00 y dateTime1 es 18:00 entonces diff es 09Hours 00 min. entonces ¿cuál es la ecuación para datetime2 es 21:00 y dateTime1 es 03:00 entonces la diferencia es negativa e incorrecta. ¿Cómo resolver esto? – Vijayaraghavan
@Pranesh: si los objetos contienen una fecha, entonces no debería haber un problema. Si no contienen un tiempo, entonces tome la diferencia absoluta o agregue 24 horas al intervalo de tiempo para dar una diferencia positiva. Lo que es correcto dependerá de su aplicación. – ChrisF
Sí, ya eliminé esos comentarios! ¿Puedes mostrarme un ejemplo de código para tu explicación? – Vijayaraghavan
Es necesario utilizar un TimeSpan. Aquí hay un código de ejemplo:
TimeSpan sincelast = TimeSpan.FromTicks(DateTime.Now.Ticks - LastUpdate.Ticks);
O simplemente 'TimeSpan sincelast = DateTime.Now - LastUpdate;' –
La forma en que generalmente lo hago es restar los dos DateTime y esto me da un TimeSpan que me dirá la diferencia.
He aquí un ejemplo:
DateTime start = DateTime.Now;
// Do some work
TimeSpan timeDiff = DateTime.Now - start;
timeDiff.TotalMilliseconds;
si ambos son los valores de fecha y hora UTC se puede hacer TimeSpan diff = dateTime1 - dateTime2;
De lo contrario la posibilidad de adquirir la respuesta correcta en cada caso posible es cero.
private void button1_Click(object sender, EventArgs e)
{
TimeSpan timespan;
timespan = dateTimePicker2.Value - dateTimePicker1.Value;
int timeDifference = timespan.Days;
MessageBox.Show(timeDifference.ToString());
}
Puede usar de la siguiente manera para lograr la diferencia entre dos objetos Datetime. Supongamos que hay objetos DateTime dt1 y dt2, luego el código.
TimeSpan diff = dt2.Subtract(dt1);
var startDate = new DateTime(2007, 3, 24);
var endDate = new DateTime(2009, 6, 26);
var dateDiff = endDate.Subtract(startDate);
var date = string.Format("{0} years {1} months {2} days", (int)dateDiff.TotalDays/365,
(int)(dateDiff.TotalDays % 365)/30, (int)(dateDiff.TotalDays % 365)/30);
Console.WriteLine(date);
- 1. ¿Cómo encuentro la diferencia horaria entre dos objetos datetime en python?
- 2. Establecer unidades de diferencia entre objetos datetime
- 3. Cómo obtener la diferencia horaria entre dos valores
- 4. ¿Cómo encuentro la diferencia horaria entre dos fechas en PHP?
- 5. C# - ¿Diferencia entre dos fechas?
- 6. Diferencia entre dos DateTimes C#?
- 7. ¿cómo obtengo la diferencia entre dos listas con nombre R?
- 8. ¿Cómo obtengo la diferencia entre dos fechas en JavaScript?
- 9. diferencias entre dos objetos en C#
- 10. ¿Cómo obtengo la diferencia en dos listas en C#?
- 11. C# DateTime cuestiones restar de zona horaria
- 12. ¿Cómo obtener milisegundos entre dos dateTime obj?
- 13. Android ¿Cómo obtener la diferencia horaria entre dos zonas horarias en Android?
- 14. ¿Cómo encontrar la diferencia entre dos cadenas?
- 15. ¿Cómo puedo encontrar la diferencia entre dos fechas usando Javascript
- 16. Calcular la diferencia entre dos fechas en MySQL
- 17. Diferencia entre 'DateTime' y 'DateTimeOffset'
- 18. Cómo obtener la diferencia horaria (en horas) entre 2 fechas
- 19. ¿Cómo puedo restar dos objetos genéricos (T - T) en C# (Ejemplo: DateTime - DateTime)?
- 20. Cómo convertir datetime a timestamp usando C# /. NET (ignorando la zona horaria actual)
- 21. Diferencia entre dos mapas
- 22. Cómo convertir DateTime en zona horaria específica?
- 23. diferencia entre dos cadenas de C#
- 24. ¿Alguna diferencia entre estos dos en C++?
- 25. Diferencia entre dos NSDates
- 26. Obtenga la diferencia entre dos listas usando LINQ
- 27. 'Diferencia' entre dos cuaterniones
- 28. diferencia entre dos matrices
- 29. ¿Hay alguna manera de obtener la diferencia entre dos conjuntos de objetos en C#
- 30. LINQ: Diferencia entre 2 DateTime en TimeSpan
Para mostrar la diferencia, haga algo como esto: 'Console.WriteLine ((a - b) .ToString (@" hh \: mm \: ss ")) '. Ver: [MSDN Custom TimeSpan Format] (http://msdn.microsoft.com/en-us/library/ee372287 (v = vs.100) .aspx) – ishmael