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

◆ GetDatePart()

virtual int System.Globalization.HijriCalendar.GetDatePart ( long ticks,
int part )
inlinepackagevirtual

Definition at line 131 of file HijriCalendar.cs.

132 {
133 CheckTicksRange(ticks);
134 long num = ticks / 864000000000L + 1;
135 num += HijriAdjustment;
136 int num2 = (int)((num - 227013) * 30 / 10631) + 1;
137 long num3 = DaysUpToHijriYear(num2);
138 long num4 = GetDaysInYear(num2, 0);
139 if (num < num3)
140 {
141 num3 -= num4;
142 num2--;
143 }
144 else if (num == num3)
145 {
146 num2--;
147 num3 -= GetDaysInYear(num2, 0);
148 }
149 else if (num > num3 + num4)
150 {
151 num3 += num4;
152 num2++;
153 }
154 if (part == 0)
155 {
156 return num2;
157 }
158 int i = 1;
159 num -= num3;
160 if (part == 1)
161 {
162 return (int)num;
163 }
164 for (; i <= 12 && num > s_hijriMonthDays[i - 1]; i++)
165 {
166 }
167 i--;
168 if (part == 2)
169 {
170 return i;
171 }
172 int result = (int)(num - s_hijriMonthDays[i - 1]);
173 if (part == 3)
174 {
175 return result;
176 }
177 throw new InvalidOperationException(SR.InvalidOperation_DateTimeParsing);
178 }
long DaysUpToHijriYear(int HijriYear)
override int GetDaysInYear(int year, int era)
static readonly int[] s_hijriMonthDays
static void CheckTicksRange(long ticks)

References System.Globalization.HijriCalendar.CheckTicksRange(), System.Globalization.HijriCalendar.DaysUpToHijriYear(), System.Globalization.HijriCalendar.GetDaysInYear(), System.Globalization.HijriCalendar.HijriAdjustment, System.SR.InvalidOperation_DateTimeParsing, System.L, and System.Globalization.HijriCalendar.s_hijriMonthDays.

Referenced by System.Globalization.HijriCalendar.AddMonths(), System.Globalization.HijriCalendar.GetDayOfMonth(), System.Globalization.HijriCalendar.GetDayOfYear(), System.Globalization.HijriCalendar.GetMonth(), and System.Globalization.HijriCalendar.GetYear().