两个日期之间以月为单位的差额

两个日期之间以月为单位的差额

如何计算C#中两个日期之间的月差?

是否有相当于VB的DateDiff()方法在C#中。我需要找出两个相隔数年的日期在几个月内的差异。文件上说我可以用TimeSpan比如:

TimeSpan ts = date1 - date2;

但这给了我几天的数据。我不想把这个数字除以30因为不是每个月都是30天,而且这两个操作数相差很远,我担心除以30可能会给我一个错误的值。

有什么建议吗?


繁星淼淼
浏览 875回答 3
3回答

MM们

假设月份中的某一天无关紧要(即2011.1.1至2010.12.31之间的差值为1),其中Date1>Date 2为正值,Date 2>Date 1为负值。((date1.Year - date2.Year) * 12) + date1.Month - date2.Month或者,假设您想要两个日期之间的“平均月数”,下面的内容应该适用于除非常大的日期差异之外的所有日期。date1.Subtract(date2).Days / (365.25 / 12)注意,如果要使用后一种解决方案,那么单元测试应该说明应用程序设计使用的最宽的日期范围,并相应地验证计算结果。如果使用“平均月”方法,则对于“每年平均天数”而言,要使用稍微准确的数字。365.2425.
打开App,查看更多内容
随时随地看视频慕课网APP