System.Globalization.UmAlQuraCalendar.ConvertHijriToGregorian C# (CSharp) Method

ConvertHijriToGregorian() private method

private ConvertHijriToGregorian ( int HijriYear, int HijriMonth, int HijriDay, int &yg, int &mg, int &dg ) : void
HijriYear int
HijriMonth int
HijriDay int
yg int
mg int
dg int
return void
        void ConvertHijriToGregorian(int HijriYear, int HijriMonth, int HijriDay, ref int yg, ref int mg, ref int dg)
        {
            BCLDebug.Assert( (HijriYear >= MinCalendarYear) && (HijriYear <= MaxCalendarYear), "Hijri year is out of range.");
            BCLDebug.Assert( HijriMonth >= 1, "Hijri month is out of range.");
            BCLDebug.Assert( HijriDay >= 1, "Hijri day is out of range.");
            int index, b, nDays = HijriDay-1;
            DateTime dt;
			

            index = HijriYear - MinCalendarYear;
            dt = HijriYearInfo[index].GregorianDate;


            b = HijriYearInfo[index].HijriMonthsLengthFlags;

            for(int m = 1; m < HijriMonth; m++)
            {
                nDays = nDays+ 29 + (b&1);   /* Add the months lengths before mh */
                b = b >> 1;
            }

            dt = dt.AddDays(nDays);
            yg = dt.Year;
            mg = dt.Month;
            dg = dt.Day;
        }

Usage Example

        // Token: 0x06002ED1 RID: 11985 RVA: 0x000B3BA4 File Offset: 0x000B1DA4
        private static long GetAbsoluteDateUmAlQura(int year, int month, int day)
        {
            int year2  = 0;
            int month2 = 0;
            int day2   = 0;

            UmAlQuraCalendar.ConvertHijriToGregorian(year, month, day, ref year2, ref month2, ref day2);
            return(GregorianCalendar.GetAbsoluteDate(year2, month2, day2));
        }