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

◆ AddMonths()

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

Definition at line 180 of file HijriCalendar.cs.

181 {
182 if (months < -120000 || months > 120000)
183 {
184 throw new ArgumentOutOfRangeException("months", months, SR.Format(SR.ArgumentOutOfRange_Range, -120000, 120000));
185 }
186 int datePart = GetDatePart(time.Ticks, 0);
187 int datePart2 = GetDatePart(time.Ticks, 2);
188 int num = GetDatePart(time.Ticks, 3);
189 int num2 = datePart2 - 1 + months;
190 if (num2 >= 0)
191 {
192 datePart2 = num2 % 12 + 1;
193 datePart += num2 / 12;
194 }
195 else
196 {
197 datePart2 = 12 + (num2 + 1) % 12;
198 datePart += (num2 - 11) / 12;
199 }
200 int daysInMonth = GetDaysInMonth(datePart, datePart2);
201 if (num > daysInMonth)
202 {
203 num = daysInMonth;
204 }
205 long ticks = GetAbsoluteDateHijri(datePart, datePart2, num) * 864000000000L + time.Ticks % 864000000000L;
206 Calendar.CheckAddResult(ticks, MinSupportedDateTime, MaxSupportedDateTime);
207 return new DateTime(ticks);
208 }
long GetAbsoluteDateHijri(int y, int m, int d)
virtual int GetDatePart(long ticks, int part)
override int GetDaysInMonth(int year, int month, int era)

References System.SR.ArgumentOutOfRange_Range, System.Globalization.Calendar.CheckAddResult(), System.DateTime, System.SR.Format(), System.Globalization.HijriCalendar.GetAbsoluteDateHijri(), System.Globalization.HijriCalendar.GetDatePart(), System.Globalization.HijriCalendar.GetDaysInMonth(), System.L, System.Globalization.HijriCalendar.MaxSupportedDateTime, System.Globalization.HijriCalendar.MinSupportedDateTime, and System.DateTime.Ticks.

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