6 ответов:
Вы можете сделать следующее:
TimeSpan duration = b - a;есть много встроенных методов в классе timespan, чтобы сделать то, что вам нужно, т. е.
duration.TotalSeconds duration.TotalMinutesболее подробную информацию можно найти здесь.
попробуйте следующее
double hours = (b-a).TotalHours;Если вы просто хотите разницу в часах, исключая разницу в днях, вы можете использовать следующее
int hours = (b-a).Hours;разница между этими двумя свойствами в основном наблюдается, когда разница во времени составляет более 1 дня. Свойство Hours будет сообщать только фактическую разницу в часах между двумя датами. Таким образом, если две даты отличаются на 100 лет, но происходят в одно и то же время в день, часы вернутся 0. Но TotalHours будет возвращает разницу между общим количеством часов, которое произошло между двумя датами (876 000 часов в этом случае).
другая разница заключается в том, что TotalHours вернет дробные часы. Это может быть или не быть то, что вы хотите. Если нет, то математика.Раунд может настроить его по своему вкусу.
разница во времени Ч/Б во времени будет показана с помощью этого метода.
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 утра
проверьте этот код может быть полезным для кого-то.
Comments