public static DateTimeHelper Parse(string input, DateTimeHelperCalendars calendarSource = DateTimeHelperCalendars.Persian, DateTimeHelperCalendars calendarTarget = DateTimeHelperCalendars.Gregorian, char seperator = '/') { DateTimeHelper r = null; // string[] parts = input.Split(new char[] { seperator }); if (parts.Length == 3) { int y, m, d; try { y = int.Parse(parts[0]); m = int.Parse(parts[1]); d = int.Parse(parts[2]); if (IsValidDate(calendarSource, y, m, d)) { r = new DateTimeHelper(calendarTarget, calendarSource, y, m, d); } } catch (Exception) { } } // return(r); }
public DateTimeHelper(DateTimeHelperCalendars calendarTarget, DateTime?sourceDate, DateTimeKind?targetTimeKind) { _Calendar = calendarTarget; _DateTime = sourceDate; if (_DateTime != null && targetTimeKind != null) { switch (targetTimeKind.Value) { case DateTimeKind.Local: _DateTime = _DateTime.Value.ToLocalTime(); break; case DateTimeKind.Unspecified: break; case DateTimeKind.Utc: _DateTime = _DateTime.Value.ToUniversalTime(); break; default: break; } } InitializeMe(); }
/// <summary> /// Gets .Net Calendar equivalence of MaDateTimeCalendars enum. /// </summary> /// <param name="calendar1">Enum value to get its .Net Calendar equivalence.</param> /// <returns>Returns .Net Calendar equivalence of MaDateTimeCalendars enum.</returns> public static System.Globalization.Calendar GetCalendar(DateTimeHelperCalendars calendar1) //return the source calender { switch (calendar1) { case DateTimeHelperCalendars.Gregorian: return(cGregorian); case DateTimeHelperCalendars.Persian: default: return(cPersian); } }
/// <summary> /// Deterines if the input date is valid in the target calendar type. /// </summary> /// <param name="calendar1">Target calendar to check input date in that calendar.</param> /// <param name="year">Year of input date to check.</param> /// <param name="month">Month of input date to check.</param> /// <param name="day">Day of input date to check.</param> /// <returns>True if valid, false if not valid.</returns> public static bool IsValidDate(DateTimeHelperCalendars calendar1, int year, int month, int day) //check if the date time is invalid { System.Globalization.Calendar c1 = GetCalendar(calendar1); bool r = false; int temp1; if (year <= c1.MaxSupportedDateTime.Year && year >= c1.MinSupportedDateTime.Year) { temp1 = c1.GetMonthsInYear(year); if (month >= 1 && month <= temp1) { temp1 = c1.GetDaysInMonth(year, month); if (day >= 1 && day <= temp1) { r = true; } } } return(r); }
public DateTimeHelper(DateTimeHelperCalendars calendarTarget, DateTimeHelperCalendars calendarSource, int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind) { _Calendar = calendarTarget; switch (calendarSource) //Put the amounts into source calender and set it as a default calender { case DateTimeHelperCalendars.Gregorian: _DateTime = cGregorian.ToDateTime(year, month, day, hour, minute, second, millisecond); _DateTime = System.DateTime.SpecifyKind(_DateTime.Value, kind); //_DateTime = new DateTime(year, month, day, hour, minute, second, millisecond, cGregorian, kind); break; case DateTimeHelperCalendars.Persian: default: _DateTime = cPersian.ToDateTime(year, month, day, hour, minute, second, millisecond); _DateTime = System.DateTime.SpecifyKind(_DateTime.Value, kind); //_DateTime = new DateTime(year, month, day, hour, minute, second, millisecond, cPersian, kind); break; } InitializeMe(); }
/// <summary> /// Exchanges the input 'day of the week' into alphabetical name using target calendar. /// </summary> /// <param name="calendar">Target calendar.</param> /// <param name="dayOfWeek">'day of week' to exchange.</param> /// <returns>Exchanged alphabetical name using target calendar.</returns> public static string GetDayOfWeekName(DateTimeHelperCalendars calendar, DayOfWeek dayOfWeek) { switch (calendar) { case DateTimeHelperCalendars.Gregorian: return(dayOfWeek.ToString()); case DateTimeHelperCalendars.Persian: default: switch (dayOfWeek) { case System.DayOfWeek.Friday: return("جمعه"); case System.DayOfWeek.Monday: return("دوشنبه"); case System.DayOfWeek.Saturday: return("شنبه"); case System.DayOfWeek.Sunday: return("یكشنبه"); case System.DayOfWeek.Thursday: return("پنجشنبه"); case System.DayOfWeek.Tuesday: return("سهشنبه"); case System.DayOfWeek.Wednesday: return("چهارشنبه"); default: return(""); } } }
public DateTimeHelper(DateTimeHelperCalendars calendarTarget, DateTime?sourceDate) : this(calendarTarget, sourceDate, null) { }
/// <summary> /// Exchanges the input month number into alphabetical name using target calendar. /// </summary> /// <param name="calendar">Target calendar.</param> /// <param name="month">Month number to exchange.</param> /// <returns>Exchanged alphabetical name using target calendar.</returns> public static string GetMonthName(DateTimeHelperCalendars calendar, int month) //exchange the month number into alphabetical name { switch (calendar) { case DateTimeHelperCalendars.Gregorian: switch (month) { case 1: return("Janury"); case 2: return("February"); case 3: return("March"); case 4: return("April"); case 5: return("May"); case 6: return("June"); case 7: return("July"); case 8: return("August"); case 9: return("September"); case 10: return("October"); case 11: return("November"); case 12: return("December"); default: return("Out of bound"); } case DateTimeHelperCalendars.Persian: default: switch (month) { case 1: return("فروردین"); case 2: return("اردیبهشت"); case 3: return("خرداد"); case 4: return("تیر"); case 5: return("مرداد"); case 6: return("شهریور"); case 7: return("مهر"); case 8: return("آبان"); case 9: return("آذر"); case 10: return("دی"); case 11: return("بهمن"); case 12: return("اسفند"); default: return("خارج از محدوده"); } } }
public DateTimeHelper(DateTimeHelperCalendars calendarTarget, DateTimeHelperCalendars calendarSource, int year, int month, int day) : this(calendarTarget, calendarSource, year, month, day, 0, 0, 0, 0, DateTimeKind.Unspecified) { }