Tôi cần một chức năng mà có thể trả lại phần chênh lệch giữa hai ngày bên dưới là 24.Sự khác biệt giữa hai DateTimes C#?
DateTime a = new DateTime(2008, 01, 02, 06, 30, 00);
DateTime b = new DateTime(2008, 01, 03, 06, 30, 00);
Tôi cần một chức năng mà có thể trả lại phần chênh lệch giữa hai ngày bên dưới là 24.Sự khác biệt giữa hai DateTimes C#?
DateTime a = new DateTime(2008, 01, 02, 06, 30, 00);
DateTime b = new DateTime(2008, 01, 03, 06, 30, 00);
Bạn có thể làm như sau:
TimeSpan duration = b - a;
Có rất nhiều được xây dựng trong các phương pháp trong lớp khoảng thời gian để làm những gì bạn cần, ví dụ:
duration.TotalSeconds
duration.TotalMinutes
Thông tin khác có thể được tìm thấy here.
Hãy thử như sau
double hours = (b-a).TotalHours;
Nếu bạn chỉ muốn sự khác biệt giờ trừ sự khác biệt trong những ngày bạn có thể sử dụng sau đây
int hours = (b-a).Hours;
Sự khác biệt giữa hai thuộc tính này chủ yếu được thấy khi chênh lệch thời gian lớn hơn 1 ngày. Thuộc tính Giờ 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 cùng một lúc trong ngày, giờ sẽ trở lại 0. Nhưng TotalHours sẽ trả về sự khác biệt giữa tổng số giờ xảy ra giữa hai ngày (876.000 giờ trong trường hợp này).
Sự khác biệt khác là TotalHours sẽ trả về số giờ phân số. Điều này có thể hoặc không thể là những gì bạn muốn. Nếu không, Math.Round có thể điều chỉnh nó theo ý thích của bạn.
Vẫn sai. TotalHours là một đôi, trả về toàn bộ và phân số giờ. –
@Vilx, không nhất thiết phải sai. Mục đích của OP là mơ hồ – JaredPar
Câu trả lời đúng của nó cho câu hỏi, anh ta muốn kết quả là 24 mà nó sẽ là. Tất nhiên anh ta có thể tự mình làm tròn TotalHours một cách dễ dàng nếu đó là điều anh ta muốn. –
Bạn có lẽ tìm kiếm
int Difference = (a-b).Hours;
Nó mang lại cho tôi một sự trở lại 1? – abmv
Thực sự cần phải là int Sự khác biệt = (a-b) .TotalHours; –
int hours = (int)Math.Round((b - a).TotalHours)
var theDiff24 = (b-a).Hours
TimeSpan X = b - a;
X.totalhours
có thể được sử dụng với nhiều hơn nữa đặc tính của TimeSpan
.
Sự chênh lệch thời gian b/w với thời gian sẽ được hiển thị 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 lĩnh vực của bạn
var t1 chụp một giá trị của 04:00
kiểm tra mã này có thể hữu ích cho một ai đó.
TimeSpan span = x.ShiftEndTime.Subtract (x.ShiftStartTime) if (span.TotalHours == 24) {do ...} – abmv