从Datetime.Today减去一个月

use*_*356 36 .net c# winforms

我有一个DateTimePicker允许用户选择当前年份之前的月份.

问题是,如果日期是1月1日,则无法按照我现在的方式计算去年12月的月份.

var today = DateTime.Today;

var lastmonth = new DateTime(today.Year, today.Month - 1, 1);
if (qs == "")
{
    dateTimePicker1.MaxDate = lastmonth;
    dateTimePicker1.Value = lastmonth;
}
else
{
    DateTime dt = Convert.ToDateTime(qs);

    dateTimePicker1.Value = dt;
    dateTimePicker1.MaxDate = lastmonth;
}
Run Code Online (Sandbox Code Playgroud)

Pat*_*man 89

只需通过'添加'-1减去一个月:

var lastmonth = DateTime.Today.AddMonths(-1);
Run Code Online (Sandbox Code Playgroud)

请参阅MSDN文档DateTime.AddMonths.