显示不超过6个月的商品

时间:2013-12-21 08:12:02

标签: c# .net datetime

显示不超过6个月(180天)的物品的正确方法是什么?我正在使用以下代码,但它似乎正在显示不符合标准的项目。

DateTime.Now.Subtract(Convert.ToDateTime(e.DateCreated)).Days <= 180

我哪里可能出错?

修改

感谢大家的帮助。原来小时是决定物品年龄的关键因素。我真的不需要它准确到小时,直到约会。

2 个答案:

答案 0 :(得分:4)

我只想用这个来约会六个月前

var sixMonthsAgo = DateTime.Now.AddDays(-180);

然后将其与您想要比较的任何内容进行比较。我想

if (Convert.ToDateTime(e.DateCreated) >= sixMonthsAgo)

在你的情况下。

修改

我使用评论中提供的测试值进行了测试。

var input = DateTime.Parse("2013-06-23 18:14:47.937");

我目前的日期 21.12.2013 ,时间约为上午11:00

根据定义,您的代码会产生结果

  

180.16:39 ...

所以它仍然符合您的要求,因为它正好是180天之久+几小时和几分钟。

我的代码产生结果

  

2013年6月24日上午11点左右

并且由于您的日期 23.6。,因此它比结果旧,因此无法满足您的要求。

如你所见,时间在这里发挥了重要作用。所以最终,它在很大程度上取决于你如何定义“180天前”。如果您仍然认为这两种变体都不能很好地运作,那么请至少给我10天的比较,无论它在哪里工作,哪里都不起作用,并标记哪些应该更老,哪些不是。

答案 1 :(得分:0)

TimeSpan ts = DateTime.Now - Convert.ToDateTime(e.datecreated);

if (ts.TotalDays <= 180)
{
 //perform some task
}