Відповіді:
Ви можете зробити наступне:
TimeSpan duration = b - a;
У класі часового інтервалу є багато вбудованих методів, щоб робити те, що вам потрібно, тобто
duration.TotalSeconds
duration.TotalMinutes
Більше інформації можна знайти тут .
Спробуйте наступне
double hours = (b-a).TotalHours;
Якщо ви просто хочете різницю в годинах, за винятком різниці в днях, ви можете використовувати наступне
int hours = (b-a).Hours;
Різниця між цими двома властивостями в основному спостерігається, коли різниця в часі перевищує 1 день. Властивість Години повідомляє лише фактичну різницю в годинах між двома датами. Отже, якщо дві дати відрізнялися на 100 років, але відбувались одночасно в день, години повернули б 0. Але TotalHours поверне різницю між загальною кількістю годин, що відбулися між двома датами (у цьому випадку 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();
}
}
використовуйте свої ідентифікатори полів
var t1 фіксує значення 4:00 AM
перевірте, чи може цей код комусь стати в нагоді.