0

我试图获取两个日期时间之间的天数,但不是根据确切的时间跨度,而是根据日期 a 和日期 b 之间的“日期”差异。不考虑时间。

到目前为止,我使用以下方法计算了一个项目的年龄:

(DateTime.Now - creationDate).Days

这段代码的问题是,对于前一天但不到 24 小时前创建的东西,它会输出“0 天”,这对我的用户来说显然不是很清楚。

所以我想要完成的是,即使对于例如在晚上 11:59 创建的项目,只要时钟到达午夜就得到“1 天前”的输出。我怎么能做到这一点?

4

2 回答 2

3

两种选择:

1)先取两个日期:

    var days = (DateTime.Today - creationDate.Date).Days;

2) 改用我的Noda Time日期/时间库,LocalDate用于涉及的两个日期,然后Period.Between(start, end, PeriodUnits.Days)得到几天的时间。(您也可以获取周数、月数等。)诚然,在 Noda Time 中故意获取“今天的日期”有点棘手 - 其中 .NET 隐式使用“系统时区”,Noda Time 迫使您更加明确。

于 2013-02-23T13:24:49.610 回答
2

我会像使用它一样简单地使用它

int days =(int)DateTime.Now.Subtract(creationDate).TotalDays; 

希望这可以帮助

于 2013-02-23T13:39:09.733 回答