Respostas:
Você pode fazer o seguinte:
TimeSpan duration = b - a;
Há muitos métodos integrados na classe de intervalo de tempo para fazer o que você precisa, ou seja,
duration.TotalSeconds
duration.TotalMinutes
Mais informações podem ser encontradas aqui .
Tente o seguinte
double hours = (b-a).TotalHours;
Se você quer apenas a diferença de horas, excluindo a diferença de dias, você pode usar o seguinte
int hours = (b-a).Hours;
A diferença entre essas duas propriedades é vista principalmente quando a diferença de tempo é superior a 1 dia. A propriedade Hours relatará apenas a diferença de hora real entre as duas datas. Portanto, se duas datas diferissem em 100 anos, mas ocorressem no mesmo horário do dia, as horas retornariam 0. Mas TotalHours retornaria a diferença na quantidade total de horas que ocorreram entre as duas datas (876.000 horas neste caso).
A outra diferença é que TotalHours retornará horas fracionárias. Isso pode ou não ser o que você deseja. Caso contrário, o Math.Round pode ajustá-lo ao seu gosto.
Talvez você esteja procurando por:
int Difference = (a-b).Hours;
A diferença de tempo entre as horas será mostrada usando este método.
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();
}
}
use seu ID de campo
var t1 captura um valor de 4h
verificar este código pode ser útil para alguém.