AddMonths:找到对应月的day,如果没有则取最后一个day
var d1 = new DateTime(2017, 6, 30);
var d2 = d1.AddMonths(-1);//2017-05-30
var d3 = d1.AddMonths(-3);//2017-03-30
var d4 = d1.AddMonths(-4);//2017-02-28
所以获取某月的最后一天,用某月的第一天去AddMonths(数字)。
var d1 = new DateTime(2017, 6, 1);
var d2 = d1.AddMonths(-1);