Я использую два DatePicker в WinForm
и пытаюсь сделать простую вещь. Всякий раз, когда я пытаюсь выбрать дату, скажем Дата начала , тогда Дата окончания должна уменьшаться на год. но есть условие. Пример, если Дата начала
равно «10 -12-2018», тогда Дата окончания должно быть «10 -12-2017». Таким же образом, если Дата начала равна «10 -12-2017», то Дата окончания будет «10 -12-2016». Опять же, если Дата начала равна «10 -14-2017», то Дата окончания будет «10 -12-2016». Потому что день изменился, а не год.
Я пробовал использовать наоборот, что означает увеличение года с DatePicker значение изменило событие и было достаточно близко с
следующее:
public frmDetails()
{
InitializeComponent();
dtPickerEnd.Value = dtPickerEnd.Value.AddYears(1); //By default adding one year for end date
}
При изменении даты начала:
private void dtPickerStart_ValueChanged(object sender, EventArgs e)
{
if (dtPickerStart.Value.Year == dtPickerEnd.Value.Year) //If year is same, then increase year by one
{
dtPickerEnd.Value = dtPickerEnd.Value.AddYears(1);
}
}
Это работает, когда я увеличиваю дату начала, но не работает, когда я делаю обратное. Например, если Дата начала равна '10 -12-2018', то Дата окончания должна быть '10 -12-2019 '. Точно так же, если Дата начала равна '10 -12-2017', тогда Дата окончания будет '10 -12-2018 '. Но теперь я готов придерживаться убывающего года. К сожалению, я не получаю ожидаемый результат с этим:
private void dtPickerStart_ValueChanged(object sender, EventArgs e)
{
if (dtPickerStart.Value.Year == dtPickerEnd.Value.Year) //If year is same, then increase year by one
{
dtPickerEnd.Value = dtPickerEnd.Value.AddYears(-1);
}
}