private void CheckTicksRange(bool validate, DateTime time) { // Valid ticks represent times between 12:00:00.000 AM, 22/03/0622 CE and 11:59:59.999 PM, 31/12/9999 CE. if (validate) { long ticks = time.Ticks; if (ticks < 196037280000000000L) { throw new InvalidPersianDateException(FALocalizeManager.GetLocalizerByCulture(System.Threading.Thread.CurrentThread.CurrentUICulture).GetLocalizedString(StringID.PersianDate_InvalidDateTime)); } } return; }
/// <summary> /// Creates a new instance of FADatePicker class. /// </summary> public FADatePicker() { mv = new FAMonthViewContainer(this); RightToLeftChanged += new EventHandler(OnInternalRightToLeftChanged); mv.MonthViewControl.SelectedDateTimeChanged += new EventHandler(OnMVSelectedDateTimeChanged); mv.MonthViewControl.ButtonClicked += new CalendarButtonClickedEventHandler(OnMVButtonClicked); FALocalizeManager.LocalizerChanged += new EventHandler(OnInternalLocalizerChanged); PopupShowing += new EventHandler(OnInternalPopupShowing); Text = FALocalizeManager.GetLocalizerByCulture(Thread.CurrentThread.CurrentUICulture).GetLocalizedString(StringID.Validation_NullText); FormatInfo = FormatInfoTypes.ShortDate; }
/// <summary> /// Updates text representation of the selected value /// </summary> public override void UpdateTextValue() { if (mv.MonthViewControl.IsNull) { Text = FALocalizeManager.GetLocalizerByCulture(Thread.CurrentThread.CurrentUICulture).GetLocalizedString(StringID.Validation_NullText); } else { if (mv.MonthViewControl.DefaultCulture.Equals(mv.MonthViewControl.PersianCulture)) { Text = ((PersianDate)SelectedDateTime).ToString(GetFormatByFormatInfo(FormatInfo)); } else { Text = SelectedDateTime.ToString(GetFormatByFormatInfo(FormatInfo), mv.MonthViewControl.DefaultCulture); } } }
private void CheckDateRange(bool validate, int year, int month, int day) { if (validate) { int maxday = GetDaysInMonth(true, year, month, 0); if (day < 1 || maxday < day) { if (day == 30 && month == 12) { throw new InvalidPersianDateException(FALocalizeManager.GetLocalizerByCulture(System.Threading.Thread.CurrentThread.CurrentUICulture).GetLocalizedString(StringID.PersianDate_InvalidLeapYear)); } else { throw new InvalidPersianDateException(FALocalizeManager.GetLocalizerByCulture(System.Threading.Thread.CurrentThread.CurrentUICulture).GetLocalizedString(StringID.PersianDate_InvalidDay)); } } } }
private void OnConvertButtonClick(object sender, EventArgs e) { OnConvertButtonClicked(EventArgs.Empty); if (Text == null || Text == FALocalizeManager.GetLocalizerByCulture(Thread.CurrentThread.CurrentUICulture).GetLocalizedString(StringID.Validation_NullText) || Text.Length == 0) return; if (CalendarType == CalendarTypes.Persian) { CalendarType = CalendarTypes.English; } else { CalendarType = CalendarTypes.Persian; } try { if (CalendarType == CalendarTypes.Persian) { mv.MonthViewControl.DefaultCalendar = mv.MonthViewControl.PersianCalendar; mv.MonthViewControl.DefaultCulture = mv.MonthViewControl.PersianCulture; DateTime dt = SelectedDateTime; Text = ((PersianDate)dt).ToString(GetFormatByFormatInfo(FormatInfo)); } else { mv.MonthViewControl.DefaultCalendar = mv.MonthViewControl.InvariantCalendar; mv.MonthViewControl.DefaultCulture = mv.MonthViewControl.InvariantCulture; DateTime dt = SelectedDateTime; Text = dt.ToString(GetFormatByFormatInfo(FormatInfo), mv.MonthViewControl.DefaultCulture); } } catch (FormatException) { Text = FALocalizeManager.GetLocalizerByCulture(Thread.CurrentThread.CurrentUICulture).GetLocalizedString(StringID.Validation_NullText); mv.MonthViewControl.SetNoneDay(); } }
private void SetSelectedDateTime(DateTime dt) { DateTime oldValue = selectedDateTime; DateTime newValue = dt; SelectedDateTimeChangingEventArgs changeArgs = new SelectedDateTimeChangingEventArgs(oldValue, newValue); OnSelectedDateTimeChanging(changeArgs); if (changeArgs.Cancel) { if (string.IsNullOrEmpty(changeArgs.Message)) { Error.SetError(this, FALocalizeManager.GetLocalizerByCulture(Thread.CurrentThread.CurrentUICulture).GetLocalizedString(StringID.Validation_Cancel)); } else { Error.SetError(this, changeArgs.Message); } return; } if (!string.IsNullOrEmpty(changeArgs.Message)) { Error.SetError(this, changeArgs.Message); } else { Error.SetError(this, string.Empty); } selectedDateTime = changeArgs.NewValue; OnSelectedDateTimeChanged(EventArgs.Empty); UpdateTextValue(); }