示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="TheDate">TheDate is normal Gregorian date</param>
        /// <param name="year"></param>
        /// <param name="month"></param>
        /// <param name="day"></param>
        /// <returns></returns>
        public static DateTime AddYearMonthDayInUmAlQuraDate(DateTime TheDate, int year, int month, int day)
        {
            DateTime         date1 = new DateTime(TheDate.Year, TheDate.Month, TheDate.Day, new GregorianCalendar());
            UmAlQuraCalendar cal   = new UmAlQuraCalendar();

            date1 = cal.AddYears(date1, year);
            date1 = cal.AddMonths(date1, month);
            date1 = cal.AddDays(date1, day);

            return(date1);
        }
示例#2
0
    public static int GetDiffMonths(DateTime?d1, DateTime?d2)
    {
        if (d1 == d2)
        {
            return(0);
        }

        UmAlQuraCalendar umalqura  = new UmAlQuraCalendar();
        DateTime         startDate = d1.Value > d2.Value ? d2.Value : d1.Value;
        DateTime         endDate   = d1.Value > d2.Value ? d1.Value : d2.Value;
        DateTime         tmpDate   = startDate;

        int monthCounter = 0;

        while (umalqura.AddMonths(tmpDate, 1).AddDays(-1) <= endDate)
        {
            monthCounter++;
            tmpDate = umalqura.AddMonths(tmpDate, 1);
        }
        return(monthCounter);
    }
示例#3
0
    public static void Main()
    {
        DateTime date1 = new DateTime(2011, 4, 3, new GregorianCalendar());
        Calendar cal   = new UmAlQuraCalendar();

        Console.WriteLine("{0:MMMM d, yyyy} in the Gregorian calendar is equivalent to:", date1);
        DisplayCalendarInfo(cal, date1);

        // Add 2 years and 10 months by calling UmAlQuraCalendar methods.
        date1 = cal.AddYears(date1, 2);
        date1 = cal.AddMonths(date1, 10);

        Console.WriteLine("After adding 2 years and 10 months in the {0} calendar,",
                          GetCalendarName(cal));
        Console.WriteLine("{0:MMMM d, yyyy} in the Gregorian calendar is equivalent to:", date1);
        DisplayCalendarInfo(cal, date1);
    }
示例#4
0
        /// <summary>
        /// int[0] is Years
        /// int[1] is Months
        /// int[2] is days
        /// int[3] is Hours
        /// int[4] is Minutes
        /// int[5] is Seconds
        /// int[6] is Milliseconds
        /// </summary>
        /// <param name="StartDate">dd/MM/yyyy</param>
        /// <param name="EndDate">dd/MM/yyyy</param>
        /// <param name="format">D means in days onty , YMD means years ,months days .....</param>
        /// <returns></returns>
        public static int[] Get_HijriDiff_Y_M_D(string StartDate, string EndDate, string format)
        {
            short StartDateYear  = Convert.ToInt16(StartDate.Substring(0, 4));
            short StartDateMonth = Convert.ToInt16(StartDate.Substring(5, 2));
            short StartDateday   = Convert.ToInt16(StartDate.Substring(8, 2));

            short EndDateYear  = Convert.ToInt16(EndDate.Substring(0, 4));
            short EndDateMonth = Convert.ToInt16(EndDate.Substring(5, 2));
            short EndDateday   = Convert.ToInt16(EndDate.Substring(8, 2));

            CultureInfo      arCul = new CultureInfo("ar-SA");
            UmAlQuraCalendar h     = new UmAlQuraCalendar();

            arCul.DateTimeFormat.Calendar = h;

            DateTime StartDatedat = new DateTime(StartDateYear, StartDateMonth, StartDateday, h);
            DateTime EndDatedat   = new DateTime(EndDateYear, EndDateMonth, EndDateday, h);


            int adys = 0;
            int amns = 0;
            int ayrs = 0;


            if (format == "YMD")
            {
                bool itsmns = false;
                bool itdys  = false;

                while (StartDatedat < EndDatedat)
                {
                    if (!itsmns)
                    {
                        StartDatedat = h.AddYears(StartDatedat, 1);


                        if (StartDatedat > EndDatedat) // اقل من سنة
                        {
                            StartDatedat = h.AddYears(StartDatedat, -1);
                            itsmns       = true;
                        }
                        else
                        {
                            ayrs++;
                        }
                    }
                    else
                    {
                        if (!itdys)
                        {
                            StartDatedat = h.AddMonths(StartDatedat, 1);

                            if (StartDatedat > EndDatedat) // اقل من شهر
                            {
                                StartDatedat = h.AddMonths(StartDatedat, -1);
                                itdys        = true;
                            }
                            else
                            {
                                amns++;
                            }
                        }
                        else
                        {
                            StartDatedat = h.AddDays(StartDatedat, 1);


                            if (StartDatedat > EndDatedat) // اقل من يوم
                            {
                                StartDatedat = h.AddDays(StartDatedat, -1);
                            }
                            else
                            {
                                adys++;
                            }
                        }
                    }
                }
            }
            else
            {
                adys = Convert.ToInt32((EndDatedat - StartDatedat).TotalDays + 1);
            }

            TimeSpan difference = EndDatedat.Subtract(StartDatedat);

            int[] Resut = new int[7];
            Resut[0] = ayrs;
            Resut[1] = amns;
            Resut[2] = adys;
            Resut[3] = difference.Hours;
            Resut[4] = difference.Minutes;
            Resut[5] = difference.Seconds;
            Resut[6] = difference.Milliseconds;

            //"الفرق : " +
            //ayrs.ToString() + " سنة" +
            //", " + amns.ToString() + " شهر" +
            //", " + adys.ToString() + " يوم" +
            //", " + difference.Hours.ToString() + " ساعة" +
            //", " + difference.Minutes.ToString() + " دقيقة" +
            //", " + difference.Seconds.ToString() + " ثانية" +
            //", " + difference.Milliseconds.ToString() + " جزء من الثانية";

            return(Resut);
        }
        /// <summary>
        /// Add UmAlqura months to a given Datetime
        /// </summary>
        /// <param name="date">a given date to add UmAlqura months</param>
        /// <param name="years">Numbers of months to be added</param>
        /// <returns>Datetime after months added</returns>
        public static DateTime AddHijriMonths(this DateTime date, int months)
        {
            UmAlQuraCalendar calendar = new UmAlQuraCalendar();

            return(calendar.AddMonths(date, months));
        }