System.Globalization.HijriCalendar.DaysUpToHijriYear C# (CSharp) Method

DaysUpToHijriYear() private method

private DaysUpToHijriYear ( int HijriYear ) : long
HijriYear int
return long
        long DaysUpToHijriYear(int HijriYear) {
            long NumDays;           // number of absolute days
            int NumYear30;         // number of years up to current 30 year cycle
            int NumYearsLeft;      // number of years into 30 year cycle

            //
            //  Compute the number of years up to the current 30 year cycle.
            //
            NumYear30 = ((HijriYear - 1) / 30) * 30;

            //
            //  Compute the number of years left.  This is the number of years
            //  into the 30 year cycle for the given year.
            //
            NumYearsLeft = HijriYear - NumYear30 - 1;

            //
            //  Compute the number of absolute days up to the given year.
            //
            NumDays = ((NumYear30 * 10631L) / 30L) + 227013L;
            while (NumYearsLeft > 0) {
                // Common year is 354 days, and leap year is 355 days.
                NumDays += 354 + (IsLeapYear(NumYearsLeft, CurrentEra) ? 1: 0);
                NumYearsLeft--;
            }

            //
            //  Return the number of absolute days.
            //
            return (NumDays);
        }