根据日期获取dayspan,而不是持续时间?

时间:2013-02-23 13:20:10

标签: c# .net silverlight datetime timespan

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

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

(DateTime.Now - creationDate).Days

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

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

2 个答案:

答案 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; 

希望这会有所帮助

相关问题