/// <summary> /// Converts a Persian Date of type <c>String</c> to Gregorian Date of type <c>String</c>. /// </summary> /// <param name="date"></param> /// <returns>Gregorian DateTime representation in string format of evaluated Jalali Date.</returns> static public string ToGregorianDate(PersianDate date) { int iJYear = date.Year; int iJMonth = date.Month; int iJDay = date.Day; //Continue int iTotalDays, iGYear, iGMonth, iGDay; int Div4, Div100, Div400; int iGDays; int i, leap; iTotalDays = JalaliDays(iJYear, iJMonth, iJDay); iTotalDays = iTotalDays + GYearOff; iGYear = (int)(iTotalDays / (Solar - 0.25 / 33)); Div4 = iGYear / 4; Div100 = iGYear / 100; Div400 = iGYear / 400; iGDays = iTotalDays - (365 * iGYear) - (Div4 - Div100 + Div400); iGYear = iGYear + 1; if (iGDays == 0) { iGYear--; if (GLeap(iGYear) == 1) { iGDays = 366; } else { iGDays = 365; } } else { if (iGDays == 366 && GLeap(iGYear) != 1) { iGDays = 1; iGYear++; } } leap = GLeap(iGYear); for (i = 0; i <= 12; i++) { if (iGDays <= GDayTable[leap, i]) { break; } iGDays = iGDays - GDayTable[leap, i]; } iGMonth = i + 1; iGDay = iGDays; return(toDouble(iGMonth) + "/" + toDouble(iGDay) + "/" + iGYear + " " + toDouble(date.Hour) + ":" + toDouble(date.Minute) + ":" + toDouble(date.Second)); }
/// <summary> /// Converts a Gregorian Date of type <c>String</c> and a <c>TimeSpan</c> into a Persian Date. /// </summary> /// <param name="date"></param> /// <param name="time"></param> /// <returns></returns> public static PersianDate ToPersianDate(string date, TimeSpan time) { PersianDate pd = ToPersianDate(date); pd.Hour = time.Hours; pd.Minute = time.Minutes; pd.Second = time.Seconds; return(pd); }
internal static string DayOfWeek(PersianDate date) { if (!date.IsNull) { DateTime dt = ToGregorianDateTime(date); return(DayOfWeek(dt)); } else { return(string.Empty); } }
/// <summary> /// Returns the day of week based on calendar. /// </summary> /// <param name="dt"></param> /// <param name="calendar"></param> /// <returns></returns> public static int GetDayOfWeek(DateTime dt, Calendar calendar) { if (calendar.Equals(pc)) { PersianDate pd = dt; return((int)pd.DayOfWeek); } else if (calendar.Equals(hc)) { return((int)dt.DayOfWeek); } else { return((int)dt.DayOfWeek); } }
public static DateTime ToGregorianDateTime(PersianDate date) { return(Convert.ToDateTime(ToGregorianDate(date))); }
/// <summary> /// Converts a Persian Date of type <c>String</c> to Gregorian Date of type <c>DateTime</c> class. /// </summary> /// <param name="date">Date to evaluate</param> /// <returns>Gregorian DateTime representation of evaluated Jalali Date.</returns> public static DateTime ToGregorianDateTime(string date) { PersianDate pd = new PersianDate(date); return(Convert.ToDateTime(ToGregorianDate(pd))); }