Vấn đề trừu tượng hơn. Như đã đề cập, trong .NET có hai loại - DateTime
và TimeSpan
. Loại DateTime
thể hiện một thời điểm cụ thể. Nó không phải là một khoảng thời gian. Đó là một vị trí cụ thể trong mọi thời đại kể từ khi sự ra đời của vũ trụ. Ngay cả khi bạn đặt thành phần năm/tháng/ngày thành 0, nó vẫn sẽ đại diện cho một số điểm tuyệt đối đúng lúc. Không phải là khoảng thời gian.
Mặt khác đại diện cho một số khoảng thời gian. 1 phút, 2 ngày, bất cứ điều gì. Nó không được chỉ định WHEN, chỉ cần CÁCH DÀI.
Vì vậy, nếu bạn đã trừ hai đối tượng DateTime, bạn sẽ nhận được một đối tượng TimeSpan xác định khoảng thời gian giữa chúng. Và nếu bạn thêm một TimeSpan vào một DateTime bạn sẽ nhận được một DateTime khác. Nhưng bạn không thể thêm một DateTime vào một DateTime khác - điều đó sẽ không có ý nghĩa gì cả.
Nghe có vẻ như tôi, bạn nên làm việc với TimeSpan
mọi lúc, bởi vì bạn đang đối phó với độ dài thời gian, không phải là thời điểm tuyệt đối. Nếu bạn nhận được những độ dài từ nguồn của bạn như là một DateTime thì đó là thực sự không chính xác, và bạn nên chuyển đổi chúng để TimeSpan
s bằng cách nào đó. Phương pháp phân tích cú pháp là một cách đã được đề xuất, nhưng bạn cũng có thể thử trừtừ đó. Điều đó có thể nhanh hơn và độc lập hơn về văn hóa.
Nguồn
2009-02-04 11:58:55
Hi, không may từ ví dụ của bạn nó không phải là rõ ràng những gì bạn đang sau đó là lý do tại sao không có một câu trả lời tốt được nêu ra. Nếu bạn thử và hiển thị thêm một số mã bạn có, hoặc đưa ra một phác thảo ngắn gọn về những gì bạn đang thực sự làm thì ai đó có thể giúp bạn. –
câu hỏi plzsendtehcodez. (Xem "Tôi cần thuật toán tuyệt vời của bạn" và "phản hồi" tiếp theo của mình). –