private DateTime?ConverteToUtc() { var gregorianDate = datePickerGregorian.Value; var persianDate = datePickerPersian.Value; var time = clockPicker.Value; int hour = 0; int minute = 0; int year = 0; int month = 0; int day = 0; if (time != null && !string.IsNullOrWhiteSpace(time.ToString())) { hour = int.Parse(time.ToString().Split(':')[0]); minute = int.Parse(time.ToString().Split(':')[1]); } if (SelectedCalendar.GetType() == typeof(PersianCalendar)) { if (datePickerPersian.Value != null && !string.IsNullOrWhiteSpace(datePickerPersian.Value.ToString())) { var splitedPersianDate = datePickerPersian.Value.ToString().Split('/'); year = int.Parse(splitedPersianDate[0]); month = int.Parse(splitedPersianDate[1]); day = int.Parse(splitedPersianDate[2]); } } else { if (datePickerGregorian.Value != null && !string.IsNullOrWhiteSpace(datePickerGregorian.Value.ToString())) { var dateTime = DateTime.Parse(datePickerGregorian.Value.ToString()); year = dateTime.Year; month = dateTime.Month; day = dateTime.Day; } } DateTime datetime = SelectedCalendar.ToDateTime(year, month, day, 0, 0, 0, 0); var localDateTime = new LocalDateTime(datetime.Year, datetime.Month, datetime.Day, hour, minute, 0); var zonedDateTime = SelectedDateTimeZone.ResolveLocal(localDateTime, mapping => { if (mapping.Count == 1) { return(mapping.First()); } throw new Exception("Ambigious time conversion."); }); return(zonedDateTime.ToDateTimeUtc()); }
void TralusDateTimeControlGregorian_Validation(object sender, DevExpress.Web.ValidationEventArgs e) { if (SelectedCalendar.GetType() != typeof(PersianCalendar)) { try { ConverteSelectedTimeToUtcAndUpdateControlsValue(); } catch (Exception ex) { e.ErrorText = ex.Message; e.IsValid = false; } } }
private DateTime?ConverteToUtc() { var gregorianDate = datePickerGregorian.Value; var persianDate = datePickerPersian.Value; int year = 0; int month = 0; int day = 0; DateTime?datetime = null; if (SelectedCalendar.GetType() == typeof(PersianCalendar)) { if (datePickerPersian.Value != null && !string.IsNullOrWhiteSpace(datePickerPersian.Value.ToString())) { var splitedPersianDate = datePickerPersian.Value.ToString().Split('/'); year = int.Parse(splitedPersianDate[0]); month = int.Parse(splitedPersianDate[1]); day = int.Parse(splitedPersianDate[2]); } } else { if (datePickerGregorian.Value != null && !string.IsNullOrWhiteSpace(datePickerGregorian.Value.ToString())) { var dateTime = DateTime.Parse(datePickerGregorian.Value.ToString()); year = dateTime.Year; month = dateTime.Month; day = dateTime.Day; } } if (year != 0 && month != 0 && day != 0) { datetime = SelectedCalendar.ToDateTime(year, month, day, 0, 0, 0, 0); } return(datetime); }
public DateForm(CalendarDate date) { InitializeComponent(); // Populate calendar box foreach (Calendar c in Session.Project.Calendars) { CalendarBox.Items.Add(c); } fDate = date.Copy(); Calendar cal = Session.Project.FindCalendar(fDate.CalendarID); if (cal != null) { CalendarBox.SelectedItem = cal; } else { CalendarBox.SelectedIndex = 0; } YearBox.Value = fDate.Year; MonthInfo month = SelectedCalendar.FindMonth(fDate.MonthID); if (month != null) { MonthBox.SelectedItem = month; } else { MonthBox.SelectedIndex = 0; } DayBox.Value = fDate.DayIndex + 1; }