Timespan là gì

Làm cách nào để có được sự khác biệt về thời gian giữa hai DateTimeđối tượng sử dụng C #?

  • c#
  • datetime

126 hữu ích 0 bình luận 258k xem chia sẻ

answer

187

Timespan là gì

Ví dụ sau đây cho thấy cách thực hiện việc này:

DateTime a = new DateTime(2010, 05, 12, 13, 15, 00); DateTime b = new DateTime(2010, 05, 12, 13, 45, 00); Console.WriteLine(b.Subtract(a).TotalMinutes);

Khi thực hiện điều này sẽ in "30" vì có chênh lệch 30 phút giữa ngày / lần.

Kết quả DateTime.Subtract(DateTime x)là một Đối tượng TimeSpan cung cấp các thuộc tính hữu ích khác.

187 hữu ích 2 bình luận chia sẻ

answer

53

Timespan là gì

Bạn muốn TimeSpancấu trúc:

TimeSpan diff = dateTime1 - dateTime2;

Một đối tượng TimeSpan biểu thị một khoảng thời gian (khoảng thời gian hoặc thời gian đã trôi qua) được đo bằng số ngày dương hoặc âm của ngày, giờ, phút, giây và phân số của giây. Cấu trúc TimeSpan cũng có thể được sử dụng để biểu thị thời gian trong ngày, nhưng chỉ khi thời gian không liên quan đến một ngày cụ thể.

Có nhiều phương pháp khác nhau để lấy lại ngày, giờ, phút, giây và mili giây từ cấu trúc này.

Nếu bạn chỉ quan tâm đến sự khác biệt thì:

TimeSpan diff = Math.Abs(dateTime1 - dateTime2);

sẽ cung cấp cho bạn sự khác biệt tích cực giữa các lần bất kể thứ tự.

Nếu bạn vừa có thành phần thời gian nhưng thời gian có thể được chia cho nửa đêm thì bạn cần thêm 24 giờ vào khoảng thời gian để có được sự khác biệt thực tế:

TimeSpan diff = dateTime1 - dateTime2; if (diff < 0) { diff = diff + TimeSpan.FromDays(1); }

53 hữu ích 3 bình luận chia sẻ

answer

26

Timespan là gì

Những gì bạn cần là sử dụng phương thức Subtract của lớp DateTime , trả về TimeSpan .

var dateOne = DateTime.Now; var dateTwo = DateTime.Now.AddMinutes(-5); var diff = dateTwo.Subtract(dateOne); var res = String.Format("{0}:{1}:{2}", diff.Hours,diff.Minutes,diff.Seconds));

26 hữu ích 0 bình luận chia sẻ

answer

9

Timespan là gì

Cách tôi thường làm là trừ hai DateTime và điều này mang lại cho tôi một TimeSpan sẽ cho tôi biết khác biệt.

Đây là một ví dụ:

DateTime start = DateTime.Now; // Do some work TimeSpan timeDiff = DateTime.Now - start; timeDiff.TotalMilliseconds;

9 hữu ích 0 bình luận chia sẻ

answer

4

Timespan là gì

NẾU chúng là cả hai giá trị thời gian ngày UTC bạn có thể làm TimeSpan diff = dateTime1 - dateTime2;

Nếu không, cơ hội của bạn để có được câu trả lời chính xác trong mọi trường hợp có thể là bằng không.

4 hữu ích 0 bình luận chia sẻ

answer

3

Timespan là gì

var startDate = new DateTime(2007, 3, 24); var endDate = new DateTime(2009, 6, 26); var dateDiff = endDate.Subtract(startDate); var date = string.Format("{0} years {1} months {2} days", (int)dateDiff.TotalDays / 365, (int)(dateDiff.TotalDays % 365) / 30, (int)(dateDiff.TotalDays % 365) / 30); Console.WriteLine(date);

3 hữu ích 0 bình luận chia sẻ

answer

2

Timespan là gì

Bạn cần sử dụng TimeSpan . Đây là một số mã mẫu:

TimeSpan sincelast = TimeSpan.FromTicks(DateTime.Now.Ticks - LastUpdate.Ticks);

2 hữu ích 1 bình luận chia sẻ

answer

2

Timespan là gì

private void button1_Click(object sender, EventArgs e) { TimeSpan timespan; timespan = dateTimePicker2.Value - dateTimePicker1.Value; int timeDifference = timespan.Days; MessageBox.Show(timeDifference.ToString()); }

2 hữu ích 0 bình luận chia sẻ

answer

1

Timespan là gì

Bạn có thể sử dụng theo cách sau để đạt được sự khác biệt giữa hai Đối tượng Ngày tháng. Giả sử có các đối tượng DateTime dt1 và dt2 thì mã.

TimeSpan diff = dt2.Subtract(dt1);

1 hữu ích 0 bình luận chia sẻ

Timespan là gì

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Timespan là gì