System.Globalization.UmAlQuraCalendar.AddMonths C# (CSharp) Метод

AddMonths() публичный Метод

public AddMonths ( System.DateTime time, int months ) : System.DateTime
time System.DateTime
months int
Результат System.DateTime
        public override DateTime AddMonths(DateTime time, int months)  {
            if (months < -120000 || months > 120000)  {
                throw new ArgumentOutOfRangeException(
                            "months",
                            String.Format(
                                CultureInfo.CurrentCulture,
                                Environment.GetResourceString("ArgumentOutOfRange_Range"),
                                -120000,
                                120000));
            }
            // Get the date in UmAlQura calendar.
            int y = GetDatePart(time, DatePartYear);
            int m = GetDatePart(time, DatePartMonth);
            int d = GetDatePart(time, DatePartDay);
            int i = m - 1 + months;

            if (i >= 0)  {
                m = i % 12 + 1;
                y = y + i / 12;
            }  else  {
                m = 12 + (i + 1) % 12;
                y = y + (i - 11) / 12;
            }

            if (d>29)
            {
                int days = GetDaysInMonth(y, m);
                if (d > days) {
                    d = days;
                }
            }
	     CheckYearRange(y, UmAlQuraEra);			
            DateTime dt = new DateTime(GetAbsoluteDateUmAlQura(y, m, d) * TicksPerDay + time.Ticks % TicksPerDay);
            Calendar.CheckAddResult(dt.Ticks, MinSupportedDateTime, MaxSupportedDateTime);
            return (dt);
        }