I have a DateTimePicker
in which I allow user to select month previous to the current year.
The problem is, that if the date is 1st January, it can\'t calc
Just substract a month by 'adding` -1:
var lastmonth = DateTime.Today.AddMonths(-1);
See the MSDN documentation on DateTime.AddMonths.
If you, like Adil H. Raza, don't like to have negative numbers in your code, you could also make an extension method:
public static DateTime SubtractMonths(this DateTime dt, int months) => dt.AddMonths(-months);
And use it like
var lastmonth = DateTime.Today.SubtractMonths(1);
Patrick got it. To build on his answer and improve error handling (if there's a possibility that qs
could be an invalid date string), you might do something like:
DateTime qsValue;
dateTimePicker1.MaxDate = DateTime.Today.AddMonths(-1);
dateTimePicker1.Value = (DateTime.TryParse(qs, out qsValue))
? qsValue
: dateTimePicker1.MaxDate;