Respuestas:
Puede hacer lo siguiente:
TimeSpan duration = b - a;
Hay muchos métodos integrados en la clase de intervalo de tiempo para hacer lo que necesita, es decir
duration.TotalSeconds
duration.TotalMinutes
Puede encontrar más información aquí .
Prueba lo siguiente
double hours = (b-a).TotalHours;
Si solo desea la diferencia horaria excluyendo la diferencia en días, puede usar lo siguiente
int hours = (b-a).Hours;
La diferencia entre estas dos propiedades se ve principalmente cuando la diferencia horaria es de más de 1 día. La propiedad Horas solo informará la diferencia horaria real entre las dos fechas. Entonces, si dos fechas difieren en 100 años pero ocurrieron a la misma hora en el día, las horas devolverían 0. Pero TotalHours devolverá la diferencia entre la cantidad total de horas que ocurrieron entre las dos fechas (876,000 horas en este caso).
La otra diferencia es que TotalHours devolverá horas fraccionarias. Esto puede ser lo que desea o no. Si no es así, Math.Round puede ajustarlo a su gusto.
¿Quizás estás buscando:
int Difference = (a-b).Hours;
Utilice este método para mostrar la diferencia horaria entre b / p.
private void HoursCalculator()
{
var t1 = txtfromtime.Text.Trim();
var t2 = txttotime.Text.Trim();
var Fromtime = t1.Substring(6);
var Totime = t2.Substring(6);
if (Fromtime == "M")
{
Fromtime = t1.Substring(5);
}
if (Totime == "M")
{
Totime = t2.Substring(5);
}
if (Fromtime=="PM" && Totime=="AM" )
{
var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
var dt2 = DateTime.Parse("1900-01-02 " + txttotime.Text.Trim());
var t = dt1.Subtract(dt2);
//int temp = Convert.ToInt32(t.Hours);
//temp = temp / 2;
lblHours.Text =t.Hours.ToString() + ":" + t.Minutes.ToString();
}
else if (Fromtime == "AM" && Totime == "PM")
{
var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim());
TimeSpan t = (dt2.Subtract(dt1));
lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString();
}
else
{
var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim());
TimeSpan t = (dt2.Subtract(dt1));
lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString();
}
}
usa tu ID de campo
var t1 captura un valor de 4:00 AM
comprobar que este código puede ser útil para alguien.