2011-01-21 36 views
5

Làm cách nào để có được sự khác biệt về ngày giữa hai đối tượng DateTime?Lấy số ngày giữa hai đối tượng DateTime khác nhau

private static string DaysAfterAYear(DateTime initialDate) 
{ 
    DateTime endDate = initialDate.AddYears(1); 
    endDate = endDate.AddMonths(1); 
    return ?? 
} 

Tôi cần có sự khác biệt giữa initialDate và endDate.

Trả lời

10

Sử dụng phương pháp trừ:

static void Main(string[] args) 
{ 
    DateTime begin = DateTime.Now; 
    DateTime end = begin.AddYears(1).AddMonths(1); 
    var result = end.Subtract(begin).TotalDays; 
} 
1
DateTime start = DateTime.Now; 
DateTime end = DateTime.Now.AddDays(5); 
TimeSpan span = end.Subtract(start); 
return span.Days; 
2
DateTime dt1 = new DateTime(2011,01,01); 
DateTime dt2 = new DateTime(2011,01,20); 
int ireturn = (int)dt2.Subtract(dt1).TotalDays; 
1
 int days = 10; 
     DateTime initialDate = DateTime.Now; 
     DateTime endDate = DateTime.Now.AddDays(days); 
     TimeSpan duration = endDate.Subtract(initialDate); 

Trong ví dụ này, bạn có thể sử dụng một trong hai span.Days hoặc span.TotalDays, tuy nhiên bạn phải rất cẩn thận với đặc tính TimeSpan . Nếu bạn nhìn vào TotalHours vs Hours ví dụ bạn sẽ thấy rằng chúng không giống nhau.

Thuộc tính Giờ là số giờ còn lại sau khi thuộc tính ngày bị gỡ bỏ (trong trường hợp này là 0), Tổng số giờ là TimeSpan được biểu thị bằng giờ.

1

Trừ DateTimes sẽ mang lại một TimeSpan:

var elapsedDays = (endDate - initialDate).TotalDays; 
Các vấn đề liên quan