将日期添加到仅日期,然后在c#中从日期中减去日期

时间:2017-01-17 12:52:29

标签: c# date datetime

我知道这个话题已经讨论过,但我想将日期添加到日期,而不是完整的日期时间,然后我需要用日期减去它。我到现在所做的是:

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,那么它还会包含我不想要的时间。我只想在日期中添加日期,然后用今天的日期减去它。

任何建议。请帮忙。

3 个答案:

答案 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")