2011-03-03 77 views
9

我有兩個日期03/03/2011作爲duedate並返回爲03/09/2011。當我從歸還中扣除歸案時,我想找到兩倍的罰款。怎樣才能增加?如何增加日期?

+3

mydate.AddDays(1);將截止日期遞增一天... – 2011-03-03 06:03:41

+5

出於好奇,您使用的是Visual Studio的某些版本嗎?如果是這樣,似乎上下文敏感的幫助將是解決您的問題的一種更快的方法。一開始似乎並不是這樣,但閱讀幫助是開發者改進週期的重要組成部分,並且學習如何閱讀幫助是必須實踐的技能。 – 2011-03-03 06:05:17

回答

19

下面的代碼可以幫助你:

var dueDate = new DateTime(2011, 3, 3); 

//if you want to increment six days 
var dueDatePlus6Days = dueDate.AddDays(6); 

//if you want to increment six months 
var dueDatePlus6Months = dueDate.AddMonths(6); 

var daysDiff1 = (dueDatePlus6Days - dueDate).TotalDays; //gives 6 
var daysDiff2 = (dueDatePlus6Months - dueDate).TotalDays; //gives 184 
1

假設returnDate,的dueDate是datetime對象:

double extraDays = (returnDate - dueDate).TotalDays; 
1

願這可以幫助你

DateTime dt_duedate = DateTime.Now; 
DateTime dt_returndate = DateTime.Now.AddDays(2); 
System.TimeSpan diffResult = dt_returndate.Subtract(dt_duedate); 
1

的合理的解決辦法似乎成爲AddDays方法,就像在其他答案中一樣。

但是,我嘗試(一般情況下)在使用貨幣或日期值時不要使用浮點數(即雙精度值)。

DateTime包含時間分量,AddDays需要雙重參數(小數部分變成時間),所以我傾向於避免使用該方法。

相反,我使用

dueDatePlusOne = dueDate.AddTicks(TimeSpan.TicksPerDay); 

這將導致略快執行過。並不是說它在今天的硬件上仍然很重要,但是我開始爲具有1MHz時鐘速度的<微處理器和舊的PDP-8's和-11's以及類似於1970年代的微處理器編碼,並且一些習慣永遠不會死亡;)

+0

AddTicks()還有一個優點: 它增加了24小時,而AddDays()只增加了到午夜的滴答聲,所以AddTicks()保持時間不變,而AddDays()將時間重置爲00:00:00 – RaSor 2015-09-30 07:32:09

+0

我剛剛嘗試過,因爲我很難相信它,AddDays(1.0)也增加了24小時。 Visual Studio中的VB項目中的立即窗口:? (#11/22/2016 01:02:03#)。AddDays(1.0) - 結果:#11/23/2016 01:02:03 AM#。與Now.AddDays(1.0)相同,小時被保留。 – 2016-11-22 13:24:27