Réponses:
Vous pouvez faire ce qui suit:
TimeSpan duration = b - a;
Il existe de nombreuses méthodes intégrées dans la classe timespan pour faire ce dont vous avez besoin, c'est-à-dire
duration.TotalSeconds
duration.TotalMinutes
Plus d'informations peuvent être trouvées ici .
Essayez ce qui suit
double hours = (b-a).TotalHours;
Si vous voulez juste la différence d'heure en excluant la différence en jours, vous pouvez utiliser ce qui suit
int hours = (b-a).Hours;
La différence entre ces deux propriétés se voit principalement lorsque le décalage horaire est supérieur à 1 jour. La propriété Hours ne signalera que la différence d'heure réelle entre les deux dates. Ainsi, si deux dates différaient de 100 ans mais se produisaient à la même heure dans la journée, les heures renverraient 0. Mais TotalHours renverra la différence entre le nombre total d'heures qui se sont produites entre les deux dates (876 000 heures dans ce cas).
L'autre différence est que TotalHours renverra des heures fractionnaires. Cela peut ou non être ce que vous voulez. Sinon, Math.Round peut l'ajuster à votre guise.
Cherchez-vous peut-être:
int Difference = (a-b).Hours;
La différence de temps b / w par rapport au temps sera affichée en utilisant cette méthode.
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();
}
}
utilisez vos identifiants de champ
var t1 capture une valeur de 4:00 AM
vérifier ce code peut être utile à quelqu'un.