Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ AddMonths()

override DateTime System.Globalization.GregorianCalendar.AddMonths ( DateTime time,
int months )
inline

Definition at line 109 of file GregorianCalendar.cs.

110 {
111 if (months < -120000 || months > 120000)
112 {
113 throw new ArgumentOutOfRangeException("months", months, SR.Format(SR.ArgumentOutOfRange_Range, -120000, 120000));
114 }
115 time.GetDate(out var year, out var month, out var day);
116 int num = month - 1 + months;
117 if (num >= 0)
118 {
119 month = num % 12 + 1;
120 year += num / 12;
121 }
122 else
123 {
124 month = 12 + (num + 1) % 12;
125 year += (num - 11) / 12;
126 }
127 int[] array = ((year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) ? DaysToMonth366 : DaysToMonth365);
128 int num2 = array[month] - array[month - 1];
129 if (day > num2)
130 {
131 day = num2;
132 }
133 long ticks = DateToTicks(year, month, day) + time.Ticks % 864000000000L;
134 Calendar.CheckAddResult(ticks, MinSupportedDateTime, MaxSupportedDateTime);
135 return new DateTime(ticks);
136 }
virtual long DateToTicks(int year, int month, int day)

References System.SR.ArgumentOutOfRange_Range, System.array, System.Globalization.Calendar.CheckAddResult(), System.DateTime, System.Globalization.GregorianCalendar.DateToTicks(), System.Globalization.GregorianCalendar.DaysToMonth365, System.Globalization.GregorianCalendar.DaysToMonth366, System.SR.Format(), System.DateTime.GetDate(), System.L, System.Globalization.GregorianCalendar.MaxSupportedDateTime, System.Globalization.GregorianCalendar.MinSupportedDateTime, and System.year.

Referenced by System.Globalization.GregorianCalendar.AddYears().