C# 计算两个日期之间的月份数(差值)
var months = ((DateTime.Now.Year - baseDate.Year) * 12) + DateTime.Now.Month - baseDate.Month;
(当前日期年份 - 目标日期年份 * 12)+ 当前日期月份 - 目标日期月份
一年 12 个月是固定的,所以年份差乘以 12 得出的月份加上目标日期与当前日期的差值既两个日期之间的月份总数。
顺便来一个获取当前月份最后一天的逻辑,其实在很多年前数据库存储过程盛行的时候,大部分就是用下面这种方式。
首先将日期格式化为 yyyy-MM-01,这样就得到当月的第一天。在当前月上再加一个月,然后减一天就得到当月的最后一天了。
baseDate.AddMonths(i + 1).AddDays(-1)