Subtract one month from Datetime.Today

后端 未结 3 589
醉梦人生
醉梦人生 2021-02-06 21:56

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

相关标签:
3条回答
  • 2021-02-06 22:00

    Just substract a month by 'adding` -1:

    var lastmonth = DateTime.Today.AddMonths(-1);
    

    See the MSDN documentation on DateTime.AddMonths.

    0 讨论(0)
  • 2021-02-06 22:08

    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);
    
    0 讨论(0)
  • 2021-02-06 22:20

    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;
    
    0 讨论(0)
提交回复
热议问题