2011-11-01 40 views

Trả lời

27

Bạn muốn DateTime.Today.AddHours(16)

DateTime.Today sẽ trở lại ngày hôm nay vào lúc nửa đêm.
Bạn cũng có thể sử dụng thuộc tính Date để giảm thời gian từ giá trị DateTime tùy ý.

+0

Vì vậy, điều gì sẽ xảy ra lúc 1 giờ sáng khi điều này được chạy? Có vẻ như nó sẽ đặt thời gian cho ngày hôm sau lúc 4 giờ sáng. Dường như không đúng với tôi – Cole9350

+2

@ Cole9350: Không; nó sẽ trở lại 4 PM. – SLaks

3
var anotherTime = DateTime.Today.AddHours(16.0); 
11

Tôi nghĩ rằng điều này sẽ làm những gì bạn cần ...

DateTime now = DateTime.Now; 
DateTime dt = new DateTime(now.Year, now.Month, now.Day, 16, 0, 0); 
+2

Đây là 4 giờ sáng, không phải PM. –

+0

@AnthonyPegram: Chúc mừng, tôi ghét nó khi điều đó xảy ra (não/ngón tay không đồng bộ) – musefan

2

Hãy nhìn vào tất cả các overloaded constructors cho DateTime.

DateTime myDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 16, 0, 0); 

Chỉnh sửa: Chỉnh sửa. Cảm ơn Jon. :)

+1

Quá tải, không bị ghi đè. Các nhà xây dựng không thể bị ghi đè vì chúng không đa hình để bắt đầu. –

+1

Điều gì sẽ xảy ra nếu cuộc gọi này diễn ra gần nửa đêm mà cuộc gọi Hôm nay đầu tiên khác với một trong những cuộc gọi tiếp theo? – musefan

+0

@musefan: Tôi đoán mọi thứ có thể xảy ra. Nhưng OP cho biết * hôm nay * vào lúc nửa đêm, vì vậy nếu mã này chạy lúc 11:59 tối, thì nó vẫn sẽ lưu trữ ngày hôm nay lúc 4 giờ chiều. Bạn có thể lưu trữ DateTime.Today trong một biến riêng biệt đầu tiên và tham khảo đó. Hoặc bạn chỉ có thể sử dụng ví dụ của SLaks mà tôi thích hơn. –

Các vấn đề liên quan