Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使“结束日期”值在用户输入开始日期和闰年帐户后正好显示1年_C#_.net_Wpf_Winforms_Visual Studio 2010 - Fatal编程技术网

C# 使“结束日期”值在用户输入开始日期和闰年帐户后正好显示1年

C# 使“结束日期”值在用户输入开始日期和闰年帐户后正好显示1年,c#,.net,wpf,winforms,visual-studio-2010,C#,.net,Wpf,Winforms,Visual Studio 2010,我还在学习C#,我的SAP附加工资程序有问题 我有一个表单,用户在其中选择一个起始时段。即“2011年1月1日”,通过visual basic 2010创建的日期时间选择器(1) 我希望表单上的另一个日期时间选择器(2)能够自动显示一年后的结束时间。对于起始期=“2011年1月1日”,我希望结束期为“2011年12月31日” 我的代码: private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { var

我还在学习C#,我的SAP附加工资程序有问题

我有一个表单,用户在其中选择一个起始时段。即“2011年1月1日”,通过visual basic 2010创建的日期时间选择器(1)

我希望表单上的另一个日期时间选择器(2)能够自动显示一年后的结束时间。对于起始期=“2011年1月1日”,我希望结束期为“2011年12月31日”

我的代码:

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
     var endDate = default(DateTime);

     endDate = dateTimePicker1.Value.AddDays(365);

     dateTimePicker2.Value = endDate;
} 
我的两个问题

  • 上述情况不包括闰年。我如何解决这个问题

  • 使用上述代码,当选择2011年1月1日时,结束日期显示不正确,即2012年1月1日,但当我输入2011年3月1日时,结束日期显示正确,即2012年2月29日。这可能与第一个问题有关吗


  • 感谢您的帮助。

    使用DateTime.AddYearsDateTime.AddYears(1)

    最好使用

    dateTimePicker1.Value.AddYears(1).AddDays(-1);
    
    endDate = dateTimePicker1.Value.AddYears(1);
    

    因为有些年份有366天

    谢谢你的回答。它似乎解决了我所有的问题。