/// <summary> /// Constructor /// </summary> /// <param name="fromPicker"></param> /// <param name="toPicker"></param> /// <param name="reloadAction"></param> /// <param name="intervalSelector"></param> /// <param name="maxDaysInterval"></param> /// <param name="fromPickerDefaultValue"></param> /// <param name="toPickerDefaultValue"></param> public FilterDateHelper(DateTimePicker fromPicker, DateTimePicker toPicker, Action reloadAction, ComboBox intervalSelector, int maxDaysInterval, DayOfWeek firstDayOfWeek, FromPickerDefaultValue fromPickerDefaultValue, ToPickerDefaultValue toPickerDefaultValue) { this._fromPicker = fromPicker; this._toPicker = toPicker; this._reloadAction = reloadAction; this._intervalSelector = intervalSelector; this._maxDaysInterval = maxDaysInterval; //set reload after change ReloadAfterChange = true; //now DateTime now = DateTime.Now; //set from picker if (fromPickerDefaultValue == FromPickerDefaultValue.Today) { _fromPicker.Value = DateTime.Now.Date; } else if (fromPickerDefaultValue == FromPickerDefaultValue.FirstDayOfWeek) { _fromPicker.Value = now.AddDays(firstDayOfWeek - now.DayOfWeek).Date; } else if (fromPickerDefaultValue == FromPickerDefaultValue.FirstDayOfMonth) { _fromPicker.Value = new DateTime(now.Year, now.Month, 1); } else if (fromPickerDefaultValue == FromPickerDefaultValue.FirstDayOfYear) { _fromPicker.Value = new DateTime(now.Year, 1, 1); } //set to picker if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerSameDay) { _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddDays(1).AddMilliseconds(-1); } else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus1W) { _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddDays(7).AddMilliseconds(-1); } else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus1M) { _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddMonths(1).AddMilliseconds(-1); } else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus3M) { _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddMonths(3).AddMilliseconds(-1); } else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus6M) { _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddMonths(6).AddMilliseconds(-1); } else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus1Y) { _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddYears(1).AddMilliseconds(-1); } //check max interval if ((_toPicker.Value - _fromPicker.Value).TotalDays > _maxDaysInterval) { _toPicker.Value = _fromPicker.Value.Date.AddDays(_maxDaysInterval).Date.AddDays(1).AddMilliseconds(-1); } //set last value _fromPickerLastValue = _fromPicker.Value; _toPickerLastValue = _toPicker.Value; //attach event handlers _fromPicker.ValueChanged += new System.EventHandler(fromPicker_ValueChanged); _fromPicker.Leave += fromPicker_Leave; _toPicker.ValueChanged += new System.EventHandler(toPicker_ValueChanged); _toPicker.Leave += toPicker_Leave; if (_intervalSelector != null) { _intervalSelector.SelectedIndexChanged += new System.EventHandler(intervalSelector_SelectedIndexChanged); } _fromPicker.KeyDown += (sender, e) => fromDateTimePicker_KeyDown(sender, e, _toPicker); //set reload after change ReloadAfterChange = true; }
/// <summary> /// Constructor /// </summary> /// <param name="fromPicker"></param> /// <param name="toPicker"></param> /// <param name="reloadAction"></param> /// <param name="intervalSelector"></param> /// <param name="maxDaysInterval"></param> /// <param name="fromPickerDefaultValue"></param> /// <param name="toPickerDefaultValue"></param> public FilterDateHelper(DateTimePicker fromPicker, DateTimePicker toPicker, Action reloadAction, ComboBox intervalSelector, int maxDaysInterval, DayOfWeek firstDayOfWeek, FromPickerDefaultValue fromPickerDefaultValue, ToPickerDefaultValue toPickerDefaultValue) { this._fromPicker = fromPicker; this._toPicker = toPicker; this._reloadAction = reloadAction; this._intervalSelector = intervalSelector; this._maxDaysInterval = maxDaysInterval; //set reload after change ReloadAfterChange = true; //now DateTime now = DateTime.Now; //set from picker if (fromPickerDefaultValue == FromPickerDefaultValue.Today) _fromPicker.Value = DateTime.Now.Date; else if (fromPickerDefaultValue == FromPickerDefaultValue.FirstDayOfWeek) _fromPicker.Value = now.AddDays(firstDayOfWeek - now.DayOfWeek).Date; else if (fromPickerDefaultValue == FromPickerDefaultValue.FirstDayOfMonth) _fromPicker.Value = new DateTime(now.Year, now.Month, 1); else if (fromPickerDefaultValue == FromPickerDefaultValue.FirstDayOfYear) _fromPicker.Value = new DateTime(now.Year, 1, 1); //set to picker if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerSameDay) _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddDays(1).AddMilliseconds(-1); else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus1W) _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddDays(7).AddMilliseconds(-1); else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus1M) _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddMonths(1).AddMilliseconds(-1); else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus3M) _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddMonths(3).AddMilliseconds(-1); else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus6M) _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddMonths(6).AddMilliseconds(-1); else if (toPickerDefaultValue == ToPickerDefaultValue.FromPickerPlus1Y) _toPicker.Value = new DateTime(_fromPicker.Value.Year, _fromPicker.Value.Month, _fromPicker.Value.Day).Date.AddYears(1).AddMilliseconds(-1); //check max interval if ((_toPicker.Value - _fromPicker.Value).TotalDays > _maxDaysInterval) _toPicker.Value = _fromPicker.Value.Date.AddDays(_maxDaysInterval).Date.AddDays(1).AddMilliseconds(-1); //set last value _fromPickerLastValue = _fromPicker.Value; _toPickerLastValue = _toPicker.Value; //attach event handlers _fromPicker.ValueChanged += new System.EventHandler(fromPicker_ValueChanged); _fromPicker.Leave += fromPicker_Leave; _toPicker.ValueChanged += new System.EventHandler(toPicker_ValueChanged); _toPicker.Leave += toPicker_Leave; if (_intervalSelector != null) _intervalSelector.SelectedIndexChanged += new System.EventHandler(intervalSelector_SelectedIndexChanged); _fromPicker.KeyDown += (sender, e) => fromDateTimePicker_KeyDown(sender, e, _toPicker); //set reload after change ReloadAfterChange = true; }