コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
 internal static string DayOfWeek(PersianDate date)
 {
     if (!date.IsNull)
     {
         DateTime dt = ToGregorianDateTime(date);
         return(DayOfWeek(dt));
     }
     else
     {
         return(string.Empty);
     }
 }
コード例 #4
0
 /// <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);
     }
 }
コード例 #5
0
 public static DateTime ToGregorianDateTime(PersianDate date)
 {
     return(Convert.ToDateTime(ToGregorianDate(date)));
 }
コード例 #6
0
        /// <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)));
        }