回答:
次のことができます。
TimeSpan duration = b - a;
タイムスパンクラスには、必要なことを行うための組み込みメソッドがたくさんあります。
duration.TotalSeconds
duration.TotalMinutes
詳細については、こちらをご覧ください。
以下をお試しください
double hours = (b-a).TotalHours;
日差を除いた時差が必要な場合は、以下を使用できます
int hours = (b-a).Hours;
これら2つのプロパティの違いは、主に時差が1日を超える場合に見られます。Hoursプロパティは、2つの日付間の実際の時差のみを報告します。したがって、2つの日付の差が100年であるが1日の中で同時に発生した場合、時間は0を返します。ただし、TotalHoursは、2つの日付の間に発生した合計時間の差(この場合は876,000時間)を返します。
他の違いは、TotalHoursは端数時間を返すことです。これは必要な場合とそうでない場合があります。そうでない場合は、Math.Roundで好みに合わせて調整できます。
あなたはおそらく探していますか?
int Difference = (a-b).Hours;
この方法を使用して、時間に対する白黒の時間差が表示されます。
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();
}
}
フィールドIDを使用する
var t1は4:00 AMの値をキャプチャします
このコードをチェックすると、誰かに役立つかもしれません。