using System;
using static System.Console;
 
public class Program {
	public static void Main() {
		var data = new DateTime(2015, 8, 15);
		WriteLine(FirstDayPreviousMonth(data));
		WriteLine(LastDayPreviousMonth(data));
		data = new DateTime(2015, 3, 15);
		WriteLine(FirstDayPreviousMonth(data));
		WriteLine(LastDayPreviousMonth(data));
		data = new DateTime(2016, 3, 15);
		WriteLine(FirstDayPreviousMonth(data));
		WriteLine(LastDayPreviousMonth(data));
	}
	public static DateTime FirstDayPreviousMonth(DateTime date) {
	    var mesAnterior = date.AddMonths(-1);
		return new DateTime(mesAnterior.Year, mesAnterior.Month, 1); 
	}
	public static DateTime LastDayPreviousMonth(DateTime date) {
	    var mesAnterior = date.AddMonths(-1);
		return new DateTime(mesAnterior.Year, mesAnterior.Month, DateTime.DaysInMonth(mesAnterior.Year, mesAnterior.Month));
	}
}
 
//https://pt.stackoverflow.com/q/80330/101
				dXNpbmcgU3lzdGVtOwp1c2luZyBzdGF0aWMgU3lzdGVtLkNvbnNvbGU7CgkJCQkJCnB1YmxpYyBjbGFzcyBQcm9ncmFtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgewoJCXZhciBkYXRhID0gbmV3IERhdGVUaW1lKDIwMTUsIDgsIDE1KTsKCQlXcml0ZUxpbmUoRmlyc3REYXlQcmV2aW91c01vbnRoKGRhdGEpKTsKCQlXcml0ZUxpbmUoTGFzdERheVByZXZpb3VzTW9udGgoZGF0YSkpOwoJCWRhdGEgPSBuZXcgRGF0ZVRpbWUoMjAxNSwgMywgMTUpOwoJCVdyaXRlTGluZShGaXJzdERheVByZXZpb3VzTW9udGgoZGF0YSkpOwoJCVdyaXRlTGluZShMYXN0RGF5UHJldmlvdXNNb250aChkYXRhKSk7CgkJZGF0YSA9IG5ldyBEYXRlVGltZSgyMDE2LCAzLCAxNSk7CgkJV3JpdGVMaW5lKEZpcnN0RGF5UHJldmlvdXNNb250aChkYXRhKSk7CgkJV3JpdGVMaW5lKExhc3REYXlQcmV2aW91c01vbnRoKGRhdGEpKTsKCX0KCXB1YmxpYyBzdGF0aWMgRGF0ZVRpbWUgRmlyc3REYXlQcmV2aW91c01vbnRoKERhdGVUaW1lIGRhdGUpIHsKCSAgICB2YXIgbWVzQW50ZXJpb3IgPSBkYXRlLkFkZE1vbnRocygtMSk7CgkJcmV0dXJuIG5ldyBEYXRlVGltZShtZXNBbnRlcmlvci5ZZWFyLCBtZXNBbnRlcmlvci5Nb250aCwgMSk7IAoJfQoJcHVibGljIHN0YXRpYyBEYXRlVGltZSBMYXN0RGF5UHJldmlvdXNNb250aChEYXRlVGltZSBkYXRlKSB7CgkgICAgdmFyIG1lc0FudGVyaW9yID0gZGF0ZS5BZGRNb250aHMoLTEpOwoJCXJldHVybiBuZXcgRGF0ZVRpbWUobWVzQW50ZXJpb3IuWWVhciwgbWVzQW50ZXJpb3IuTW9udGgsIERhdGVUaW1lLkRheXNJbk1vbnRoKG1lc0FudGVyaW9yLlllYXIsIG1lc0FudGVyaW9yLk1vbnRoKSk7Cgl9Cn0KCi8vaHR0cHM6Ly9wdC5zdGFja292ZXJmbG93LmNvbS9xLzgwMzMwLzEwMQ==