Antworten:
Sie können Folgendes tun:
TimeSpan duration = b - a;
In der Zeitspanne gibt es viele integrierte Methoden, um das zu tun, was Sie brauchen, dh
duration.TotalSeconds
duration.TotalMinutes
Weitere Infos finden Sie hier .
Versuche Folgendes
double hours = (b-a).TotalHours;
Wenn Sie nur die Stundendifferenz ohne die Differenz in Tagen möchten, können Sie Folgendes verwenden
int hours = (b-a).Hours;
Der Unterschied zwischen diesen beiden Eigenschaften wird hauptsächlich gesehen, wenn der Zeitunterschied mehr als 1 Tag beträgt. Die Eigenschaft Stunden gibt nur die tatsächliche Stundendifferenz zwischen den beiden Daten an. Wenn sich also zwei Daten um 100 Jahre unterscheiden, aber zur gleichen Zeit am Tag auftreten, geben die Stunden 0 zurück. TotalHours gibt jedoch die Differenz zwischen der Gesamtstundenzahl zurück, die zwischen den beiden Daten aufgetreten ist (in diesem Fall 876.000 Stunden).
Der andere Unterschied besteht darin, dass TotalHours gebrochene Stunden zurückgibt. Dies kann oder kann nicht sein, was Sie wollen. Wenn nicht, kann Math.Round es nach Ihren Wünschen anpassen.
Suchen Sie vielleicht:
int Difference = (a-b).Hours;
Die Zeitdifferenz s / w zur Zeit wird mit dieser Methode angezeigt.
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();
}
}
Verwenden Sie Ihre Feld-IDs
var t1 erfasst einen Wert von 4:00 Uhr
Überprüfen Sie, ob dieser Code für jemanden hilfreich sein kann.