2015-11-30 17 views
9

Tôi đang tạo một DateTime bằng cách thêm một ngày vào ngày hiện tại (được hiển thị bên dưới). Tôi cũng cần thời gian cụ thể như được hiển thị bên dưới. Mã dưới đây hoạt động tốt cho đến khi tôi đến cuối tháng nơi tôi đang cố gắng thêm một ngày.Cách thêm ngày vào DateTime vào cuối tháng?

Bạn có thể giúp tôi thay đổi mã của mình để mã hoạt động khi ngày hiện tại là vào cuối tháng và tôi đang cố gắng thêm một ngày để chuyển sang ngày 1 tháng 12 thay vì ngày 31 tháng 11 (ví dụ) và ném một lỗi.

var ldUserEndTime = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day + 1, 00, 45, 00); 
+6

Thay vì tạo ra một 'DateTime' với giá trị rõ ràng, hãy thử sử dụng' dateNow.AddDays (1) ' –

+0

https://msdn.microsoft.com/en-us/library/c0ccada e% 28v = vs.110% 29.aspx – demkalkov

+0

Hoặc có thể 'var ldUserEndTime = DateTime.Today.AddHours (24.75);'. Đó là 24 giờ và ba quaters trong một giờ. –

Trả lời

2
var ldUserEndTime = DateTime.Today + new TimeSpan(1, 0, 45, 0); 
+0

Cảm ơn Gary và tất cả mọi người, tôi đã sử dụng nó và nó hoạt động hoàn hảo !! – Andy

6

Có lẽ một số loại phương pháp lai sẽ làm việc tốt nhất cho bạn để bạn có thể nhận được các thành phần thời gian và thêm ngày mà không cần phải những rắc rối ở phần cuối của tháng:

var ldUserEndTime = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 00, 45, 00).AddDays(1); 

Phương pháp AddDays sẽ tự động đưa vào tài khoản chuyển đổi tháng, vì vậy nếu hôm nay là cuối tháng (hey, nó là!), sau đó bạn sẽ nhận được 2015-12-01 12:45:00.

13

Bạn chỉ cần sử dụng DateTime.AddDays method khi sử dụng Date property để nhận nửa đêm và thêm 45 phút.

var ldUserEndTime = dateNow.AddDays(1).Date.AddMinutes(45); 

Kể từ khi không có là như một ngày thứ 31 trong November, constructor này ném ngoại lệ.

Từ phần Ngoại lệ trên DateTime(Int32, Int32, Int32, Int32, Int32, Int32) trang;

ArgumentOutOfRangeException - ngày là ít hơn 1 hoặc lớn hơn số ngày trong tháng

2

này nên làm như lừa:

DateTime ldUserEndTime = DateTime.Today.AddDays(1).AddMinutes(45); 
Các vấn đề liên quan