2016-01-01 31 views
0

單擊按鈕並將自定義time保留爲10:00:00時,我想減少DateTimePicker中的日期。使用自定義時間遞減DateTimePicker日期值

當我使用下面的代碼,並從一個月回到另一個(上一個月在同一年)時,它工作正常。

但是當我嘗試從2016年回到2015年時出現問題。例如,當我嘗試從1-1-2016回到31-12-2015時,它會顯示錯誤:「年,月和日參數描述了無法表示的日期時間」

dateTimePicker1.Value = new DateTime(dateTimePicker1.Value.Year, dateTimePicker1.Value.Month, dateTimePicker1.Value.Day - 1, 10, 00, 0); 

任何人都知道如何從一年到另一年(前一年)減少一天並保持定製時間?請幫忙。謝謝

回答

1

dateTimePicker1.Value是一個DateTimeDateTime有方法來修改日期和時間正確

dateTimePicker1.Value = dateTimePicker1.Value.Date.AddDays(-1).AddHours(10); 

它採用當前日期[午夜],計算出一個日期[仍然午夜]和加10小時早上]

+0

此代碼減少了一天,但沒有保持在上午10點定製的時間。任何想法?謝謝 – Serena

+0

@Serena,請在更新之前檢查'dataTimePicker1.Value'。如果它像'1-1-2016'(不包括'10:00')那樣,那麼'dateTimePicker1.Value = dateTimePicker1.Value.AddDays(-1).AddHours(10);'應該幫助 – ASh

+0

我添加AddHours (10),但每次點擊按鈕時都會給出隨機時間值。每次我點擊按鈕的時間變化爲不同的價值,而不是停留在上午10點。 – Serena