Câu trả lời:
Bạn có thể làm như sau:
TimeSpan duration = b - a;
Có rất nhiều phương thức tích hợp sẵn trong lớp timespan để làm những gì bạn cần, tức là
duration.TotalSeconds
duration.TotalMinutes
Thông tin thêm có thể được tìm thấy ở đây .
Hãy thử những điều sau đây
double hours = (b-a).TotalHours;
Nếu bạn chỉ muốn chênh lệch giờ không bao gồm chênh lệch ngày, bạn có thể sử dụng cách sau
int hours = (b-a).Hours;
Sự khác biệt giữa hai tài sản này chủ yếu được nhìn thấy khi chênh lệch múi giờ hơn 1 ngày. Thuộc tính Hours sẽ chỉ báo cáo chênh lệch giờ thực tế giữa hai ngày. Vì vậy, nếu hai ngày khác nhau 100 năm nhưng xảy ra vào cùng một thời điểm trong ngày, giờ sẽ trả về 0. Nhưng TotalHours sẽ trả về sự chênh lệch giữa tổng số giờ đã xảy ra giữa hai ngày (trong trường hợp này là 876.000 giờ).
Sự khác biệt khác là TotalHours sẽ trả về số giờ theo phân số. Đây có thể là điều bạn muốn hoặc không. Nếu không, Math.Round có thể điều chỉnh theo ý bạn.
Có lẽ bạn đang tìm kiếm:
int Difference = (a-b).Hours;
Chênh lệch thời gian b / w với thời gian sẽ được hiển thị bằng cách sử dụng phương pháp này.
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();
}
}
sử dụng id trường của bạn
var t1 nhận giá trị 4:00 sáng
kiểm tra mã này có thể hữu ích cho ai đó.