在用户输入开始日期和闰年帐户后,将结束日期值显示为1年

时间:2011-06-30 06:48:22

标签: c# .net wpf winforms visual-studio-2010

我还在学习C#,我的SAP附加工资计划有问题。

我有一个用户选择开始时段的表单。即通过Visual Basic 2010创建的日期时间选择器(1)“2011年1月1日”。

我希望表单上的另一个日期时间选择器(2)能够在exatcly一年后自动显示结束时段。在开始期间=“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;
} 

我的2个问题。

  1. 以上内容并未考虑闰年。我该如何解决这个问题?

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

  3. 任何帮助表示感谢。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

使用 DateTime.AddYears DateTime.AddYears(1);

答案 2 :(得分:0)

最好使用

endDate = dateTimePicker1.Value.AddYears(1);

比AddDays方法,因为有些年份有366天