我还在学习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个问题。
以上内容并未考虑闰年。我该如何解决这个问题?
使用上面的代码,当选择2011年1月1日时,结束日期显示不正确,2012年1月1日,但是当我输入2011年3月1日时,结束日期正确显示,2012年2月29日。这可能是与第一个问题有关?
任何帮助表示感谢。
答案 0 :(得分:5)
dateTimePicker1.Value.AddYears(1).AddDays(-1);
答案 1 :(得分:1)
使用 DateTime.AddYears DateTime.AddYears(1);
答案 2 :(得分:0)
最好使用
endDate = dateTimePicker1.Value.AddYears(1);
比AddDays方法,因为有些年份有366天