C# 如何向日期添加一年并选择特定月份

C# 如何向日期添加一年并选择特定月份,c#,datetime,C#,Datetime,如果NextInspectionDueDate小于或等于今天的日期,则我希望将其值更新到同一天,但要更新到明年,尤其是4月份 我尝试了下面的方法,但它给出了一个“有一些无效参数”错误。 我就是想不出正确的语法。也许我应该换一种方式 if (foundVehicle.Vehicle.NextInspectionDueDate <= DateTime.Now) { foundVehicle.Vehicle.NextInspectionDueDate = new DateTime(Dat

如果
NextInspectionDueDate
小于或等于今天的日期,则我希望将其值更新到同一天,但要更新到明年,尤其是4月份

我尝试了下面的方法,但它给出了一个“有一些无效参数”错误。 我就是想不出正确的语法。也许我应该换一种方式

if (foundVehicle.Vehicle.NextInspectionDueDate <= DateTime.Now)
{
    foundVehicle.Vehicle.NextInspectionDueDate = new DateTime(DateTime.Now.AddYears(1), 4);
}

if(foundVehicle.Vehicle.NextInspectionDueDate您刚刚忘记了构造函数的参数(当月的某一天):


您刚刚忘记了构造函数的一个参数(每月的一天):


您缺少一个参数(天),也许您可以尝试:

var tempdate=DateTime.Now.AddYears(1);
foundVehicle.Vehicle.NextInspectionDueDate=新的日期时间(tempdate.Year,4,tempdate.Day);

如果您需要保留当前日期,则

var-day=foundVehicle.Vehicle.NextInspectionDueDate.day;
var tempdate=DateTime.Now.AddYears(1);
foundVehicle.Vehicle.NextInspectionDueDate=新日期时间(tempdate.Year,4,day);


如果需要保留原始日期日期,则缺少一个参数(日期),您可以尝试:

var tempdate=DateTime.Now.AddYears(1);
foundVehicle.Vehicle.NextInspectionDueDate=新的日期时间(tempdate.Year,4,tempdate.Day);

如果您需要保留当前日期,则

var-day=foundVehicle.Vehicle.NextInspectionDueDate.day;
var tempdate=DateTime.Now.AddYears(1);
foundVehicle.Vehicle.NextInspectionDueDate=新日期时间(tempdate.Year,4,day);


如果您需要保留原始日期日期

如果今天是
1月31日
?结果是
4月30日
还是
5月1日
?您必须将
日期
…新的日期时间(DateTime.Now.AddYears(1),4,1)
要有
2018年4月1日
DateTime.Now.AddYears
返回一个
System.DateTime
。您需要一个
int
。作为旁注:也许您也感兴趣。@Johnny Mopp,正确,提供的示例代码甚至无法编译如果今天是
1月31日
,结果是
4月30日
o吗r
5月1日
?你必须把
…新的日期时间(DateTime.Now.AddYears(1),4,1);
拥有2018年4月1日的
日期时间。现在。AddYears
返回一个
系统.DateTime
。您需要一个
int
。作为旁注:也许您也感兴趣。@Johnny Mopp,正确,而且提供的示例代码甚至无法编译您的原始答案正是我想要的。您的编辑答案是not是必需的,因为我特别想要4月1日。我已对问题进行了编辑,以包含此内容。谢谢!@RMadd感谢您的评论!我将删除编辑内容!;)您的原始答案正是我想要的。您的编辑答案不是必需的,因为我特别想要4月1日。我对问题进行了编辑,将其包括在内。谢谢大家!@感谢您的评论!我将删除编辑,而不是!;)
foundVehicle.Vehicle.NextInspectionDueDate = new DateTime(DateTime.Now.AddYears(1).Year, 4, 1);