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)