2016-01-01 2 views
0

Я хочу декрементировать день в DateTimePicker, когда кнопка нажата и сохранит настроенный time по адресу 10:00:00.Decrement DateTimePicker значение дня с настраиваемым временем

Когда я использую следующий код, а при возвращении из месяца в другой (в предыдущем месяце в том же году), он работает нормально.

, но проблема возникает, когда я пытаюсь вернуться от 2016 до 2015 К примеру, когда я пытаюсь вернуться из 1-1-2016 в 31-12-2015 дает ошибку: «год, месяц и день параметры описывают ООН-представима DateTime»

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

Каждый знает, как я могу уменьшить день и сохранить настроенное время, когда возвращаясь из года к другому (к предыдущему году)? пожалуйста помоги. Спасибо

ответ

1

dateTimePicker1.Value является DateTime и DateTime имеет методы для изменения даты и времени правильно

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

Смежные вопросы