2012-01-13 23 views
10

Tôi muốn trừ giây sau cuộc hẹn hò, ví dụ:Nhận một DateTime bằng cách trừ giây từ ngày hiện tại

phép nói rằng tôi có 1300 giây trong một số nguyên unsigned, tôi muốn nhân ngày hiện tại và thời gian, trừ đi 1.300 giây từ nó và kết thúc bằng:

01/13/2012 2:15 PM (định dạng không thực sự quan trọng).

tôi đã thử:

DateTime dt = new DateTime(); 
dt.Add(new TimeSpan(0, 0, ui.OnlineTime)); 
Online.Text = dt.ToLongDateString(); 
+0

Bạn có thể không chuyển đổi một khoảng thời gian vào một ngày. Hãy thử nghĩ về nó theo cách này: Tôi muốn ** thêm ** (hoặc loại bỏ) một khoảng thời gian 1300 giây cho đến ngày hôm nay. – Groo

+1

Tôi đã thử: Ngày giờ dt = new DateTime(); dt.Thêm (TimeSpan mới (0, 0, ui.OnlineTime)); Online.Text = dt.ToLongDateString(); – Eric

+3

Vấn đề của bạn là 'DateTime' là không thay đổi. 'Add' trả về một DateTime mới. Ngoài ra, sử dụng 'TimeSpan.FromSeconds'. – SLaks

Trả lời

22

AddSeconds(double value) phương pháp DateTime mất số dương và âm của giây:

[value tham số đại diện cho] một số của toàn bộ và phân số giây. Thông số giá trị có thể là số âm hoặc dương.

Do đó, để trừ đi 1300 giây bạn cần phải thêm -1300 giây:

DateTime.Now.AddSeconds(-1300); 
3
DateTime.Now.AddSeconds(-1300) 

Đó là dễ dàng

+0

Tôi nghĩ bình luận của bạn đã đúng. Tác giả thêm chính xác vào 'DateTime' của họ, vấn đề là họ không lưu giá trị trả lại của phương thức bổ sung mà họ đang gọi. Vì vậy, gọi 'AddSeconds()' thực sự chỉ là một nửa của giải pháp. – BACON

+0

@ BACON: Tôi biết. Tôi đã đăng câu trả lời này trước khi bình luận của anh ấy. – SLaks

3

Hãy thử:

DateTime.Now.AddSeconds(-1300); 
Các vấn đề liên quan