繁体   English   中英

在仅日期中添加天数,然后从c#中的日期中减去它

[英]Adding days to only date and then subtracting it from date in c#

我知道已经讨论了此主题,但是我想仅将日期添加到日期,而不是完整的日期时间,然后我需要用日期减去它。 到目前为止,我所做的是:

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那么它还将包含我不想要的时间。 我只想只添加日期,然后将其与今天的日期相减。

有什么建议么。 请帮忙。

您是否尝试过以下操作?

string endDate = DateTime.Now.Date.AddDays(2);

但是,尚不清楚为什么必须这样做。 提出一些其他背景对于提出其他解决方案将是很好的。

尝试这个:

DateTime endDate = DateTime.Today.AddDays(2);

TimeSpan diff = DateTime.Today - endDate

Today属性将仅返回日期部分(因此时间将为00:00:00),但仍处于DateTime结构中,因此您可以从中减去另一个DateTime来获得TimeSpan。

我加入Federico,您需要使用DateTime实例的Date属性。 它将返回日期的00:00:00。

旁注:在计算差异之前,只需将所有日期保留在DateTime中(例如,不要将它们转换为字符串)。 例如:

TimeSpan diff = DateTime.Now.Date - endDate; 

如果需要日期部分,则可以在计算后使用格式字符串。 例如:

endDate.ToString("yyyy.MM.dd")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM