c# - 找出两个 DateTime 对象之间差异的最佳方法?
问题描述
我想找出两个 DateTime 对象之间的区别。我知道我可以使用 DateTime.Subtract() 和重载运算符“-”(例如 DateTime - DateTime)。但是有人告诉我,这两种技术都不够好,还有一个方法DateDiff什么的,我应该用哪个最好用。我想知道是不是真的?如果是,那么从任何角度来看,以上两者如何劣势?
解决方案
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
或-
,正如您在问题中所写的那样。
推荐阅读
- python - 如何从beautifulsoup输出python中读取链接
- python - 如何将流媒体更改为空闲?
- pyspark - 在 dropMalformed 模式下读取 csv 文件并在结果数据框中记录计数的问题
- solidity - 通过合约将代币从地址A发送到地址B
- kubernetes - 在 Kubernetes 中运行的 Prometheus 从服务器返回 Empty 回复并且权限被拒绝
- python - line_color_focus 不适用于 kivyMD 中的 MDTextField
- json - 索引超出范围 SwiftUI
- python - Python 将 CSV 上传到 Sharepoint Online:上传后格式不正确
- sql - 如何将多个查询结果与列名一起显示?
- javascript - redux 中的 getState() 在本机反应中给出不同的 userId