我试图获取两个日期之间的天数,但不是根据确切的时间跨度,而是根据日期a和日期b之间的“日期”差异。没有考虑时间。
到目前为止,我使用以下方法计算了项目的年龄:
(DateTime.Now - creationDate).Days
这段代码的问题在于,对于前一天但不到24小时创建的内容,它会输出“0天”,这对我的用户来说显然不是很清楚。
所以我想要完成的是,即使是在晚上11:59创建的项目,一旦时钟到达午夜就会得到“1天大”的输出。我怎么能做到这一点?
答案 0 :(得分:3)
两个选项:
1)首先考虑两个日期:
var days = (DateTime.Today - creationDate.Date).Days;
2)改为使用我的Noda Time日期/时间库,使用LocalDate
表示相关的两个日期,然后使用Period.Between(start, end, PeriodUnits.Days)
获取一段时间。 (你也可以得到几个星期,几个月等)。无可否认地获得“今天的日期”在Noda Time中有点棘手 - 在.NET中隐含地使用“系统时区”,Noda Time强迫你更加明确。
答案 1 :(得分:2)
我会像
一样使用它int days =(int)DateTime.Now.Subtract(creationDate).TotalDays;
希望这会有所帮助