首页 > 解决方案 > 找出两个 DateTime 对象之间差异的最佳方法?

问题描述

我想找出两个 DateTime 对象之间的区别。我知道我可以使用 DateTime.Subtract() 和重载运算符“-”(例如 DateTime - DateTime)。但是有人告诉我,这两种技术都不够好,还有一个方法DateDiff什么的,我应该用哪个最好用。我想知道是不是真的?如果是,那么从任何角度来看,以上两者如何劣势?

标签: c#.netdatetime

解决方案


DateDiff不比较dateTime实例。
它比较 DateTime 实例的特定部分 - 例如,月份或小时。

例如:

var lasyDayOf2018 = new DateDime(2018, 12, 31);
var firstDayOf2019 = lasyDayOf2018.AddDays(1);
var monthDiff = DateDiff(DateInterval.Month, lasyDayOf2018, firstDayOf2019)

monthDiff 将为 1,即使两个日期之间仅过去了一天。

DateDiff它记录在文档页面的备注部分:

如果 Interval 设置为 DateInterval.Year,则返回值仅根据 Date1 和 Date2 的年份部分计算。类似地,DateInterval.Month 的返回值纯粹根据参数的年份和月份部分计算,而 DateInterval.Quarter 的返回值则根据包含两个日期的季度计算。

例如,当比较 12 月 31 日和下一年的 1 月 1 日时,DateDiff 为 DateInterval.Year、DateInterval.Quarter 或 DateInterval.Month 返回 1,即使最多只过去了一天。

要获得 的不同实例之间的实际差异DateTime,请使用Subtract-,正如您在问题中所写的那样。


推荐阅读