2011-06-30 60 views
3

我仍然在學習C#,並且我的SAP附加Payroll程序出現問題。在用戶輸入開始日期和帳戶閏年後,顯示結束日期的值恰好爲1年

我有一個表格,用戶選擇一個開始時間段。即通過一個通過visual basic 2010創建的日期時間選擇器(1),即「2011年1月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; 
} 

我的2個問題。

  1. 上面沒有說明閏年。我該如何解決這個問題?

  2. 使用上面的代碼,選擇2011年1月1日時,結束日期顯示不正確,2012年1月1日,但是當我輸入2011年3月01日時,結束日期顯示正確,2012年2月29日。與第一個問題有關?

任何幫助表示讚賞。

回答

5
dateTimePicker1.Value.AddYears(1).AddDays(-1); 
+0

感謝這個答案。它似乎照顧我所有的問題。 –

1

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

+0

感謝您的回覆。 –

0

是更好地使用

endDate = dateTimePicker1.Value.AddYears(1); 

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

+0

感謝您的回覆。 –

相關問題