2009-05-21 26 views

Trả lời

36

Bạn không nên sử dụng DateTime để biểu thị khoảng thời gian - sử dụng TimeSpan cho điều đó. Và trong một trường hợp như vậy, bạn muốn sử dụng này:

TimeSpan ts = TimeSpan.FromMinutes(90); 

Nếu bạn nhấn mạnh rằng bạn cần một DateTime, bạn có thể làm như sau:

DateTime dt = DateTime.Now.Date; // To get Midnight Today 
dt = dt.AddMinutes(90); // to get 90-minutes past midnight Today. 

Lý do có thể bạn không muốn sử dụng DateTime, mặc dù, là nó (aptly named) kết hợp khái niệm Date với khái niệm Time. Câu hỏi của bạn cho thấy rằng bạn đang lập kế hoạch bỏ qua thành phần ngày, vì vậy vì lợi ích của việc sử dụng đúng công cụ cho công việc, tôi đề nghị TimeSpan.

+0

Nhưng, tôi thực sự cần phải chuyển đổi sang DateTime, nếu không sẽ ném một lỗi! – user95542

+0

Đó là một sự xấu hổ - ah tốt. Sử dụng gợi ý thứ hai của tôi, sau đó, và bạn nên tốt để đi. –

1

Hoặc nếu bạn đang cố gắng để thêm thời gian để một DateTime chỉ với một ngày:

DateTime dt = dateTime.AddMinutes(90); 
+5

DateTime là không thay đổi - gọi AddMinutes() sẽ trả về một DateTime mới với phần bổ sung được thực hiện. Bỏ qua giá trị trả lại sẽ dẫn đến sự xuất hiện mà không có gì xảy ra. –

1


Nếu bạn sử dụng C# 4 (VS 2010), bạn cần đoạn này:

TimeSpan ts = TimeSpan.FromSeconds(90); 
txtDate = string.Format("Full time: {0}", new DateTime(ts.Ticks).ToString("HH:mm:ss")); 

nó ra

Full time: 00:01:30 
Các vấn đề liên quan