我知道这个话题已经讨论过,但我想将日期添加到日期,而不是完整的日期时间,然后我需要用日期减去它。我到现在所做的是:
string endDate = DateTime.Now.AddDays(2).ToShortDateString();
现在这给了我19-jan-17
这样的字符串,这很好但是当我想用今天的日期减去它时,它会给出错误,因为结束日期是字符串。我试过下面的代码:
TimeSpan diff = DateTime.Now.ToShortDateString() - endDate ;
或
TimeSpan diff = DateTime.Now.ToShortDateString() - Convert.ToDateTime(endDate)
或
TimeSpan diff = DateTime.Now.ToShortDateString() - Convert.ToString(endDate)
如果我将DateTime.Now.ToShortDateString()
更改为DateTime.Now
,那么它还会包含我不想要的时间。我只想在日期中添加日期,然后用今天的日期减去它。
任何建议。请帮忙。
答案 0 :(得分:1)
您是否尝试过以下操作?
string endDate = DateTime.Now.Date.AddDays(2);
但是,目前尚不清楚为什么必须这样做。一些上下文对于提出其他解决方案非常有用。
答案 1 :(得分:1)
试试这个:
DateTime endDate = DateTime.Today.AddDays(2);
TimeSpan diff = DateTime.Today - endDate
Today
属性将仅返回日期部分(因此时间将为00:00:00),但仍然在DateTime结构中,因此您可以从其中减去另一个DateTime来获取TimeSpan。
答案 2 :(得分:0)
我加入Federico,您需要使用DateTime实例的Date属性。它将返回日期的00:00:00时刻。
一面注意: 在计算差异之前,只需将所有日期保留在DateTime中(例如,不要将它们转换为字符串)。 例如:
TimeSpan diff = DateTime.Now.Date - endDate;
如果需要日期部分,可以在计算后使用格式字符串。 例如:
endDate.ToString("yyyy.MM.dd")