我有两个日期作为03/03/2011的duedate并且返回03/09/2011。当我从returnndate中减去duedate时,我想找到双倍罚款。如何增加duedate?
答案 0 :(得分:21)
以下代码可能会对您有所帮助:
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 :(得分:2)
逻辑解决方案似乎是AddDays方法,与其他答案一样。
但是,我尝试(通常)在处理货币或日期值时永远不会使用浮点数(即双倍)。
DateTime包含一个时间组件,AddDays将double作为参数(小数部分变为时间),因此我倾向于避免使用该方法。
相反,我使用
dueDatePlusOne = dueDate.AddTicks(TimeSpan.TicksPerDay);
这也会导致执行速度稍快。并不是说它在今天的硬件上仍然很重要,但我开始编写具有<1 MHz时钟速度和旧PDP-8和-11的微处理器以及类似于1970年代的东西,并且一些习惯永远不会消亡;)< / p>
答案 2 :(得分:1)
假设returnDate,dueDate是DateTime对象:
double extraDays = (returnDate - dueDate).TotalDays;
答案 3 :(得分:1)
愿这可以帮到你
DateTime dt_duedate = DateTime.Now;
DateTime dt_returndate = DateTime.Now.AddDays(2);
System.TimeSpan diffResult = dt_returndate.Subtract(dt_duedate);