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

◆ ConvertGregorianToHijri()

static void System.Globalization.UmAlQuraCalendar.ConvertGregorianToHijri ( DateTime time,
out int HijriYear,
out int HijriMonth,
out int HijriDay )
inlinestaticprivate

Definition at line 202 of file UmAlQuraCalendar.cs.

203 {
204 int num = (int)((time.Ticks - s_minDate.Ticks) / 864000000000L) / 355;
205 while (time.CompareTo(s_hijriYearInfo[++num].GregorianDate) > 0)
206 {
207 }
208 if (time.CompareTo(s_hijriYearInfo[num].GregorianDate) != 0)
209 {
210 num--;
211 }
212 TimeSpan timeSpan = time.Subtract(s_hijriYearInfo[num].GregorianDate);
213 int num2 = num + 1318;
214 int num3 = 1;
215 int num4 = 1;
216 double num5 = timeSpan.TotalDays;
217 int num6 = s_hijriYearInfo[num].HijriMonthsLengthFlags;
218 int num7 = 29 + (num6 & 1);
219 while (num5 >= (double)num7)
220 {
221 num5 -= (double)num7;
222 num6 >>= 1;
223 num7 = 29 + (num6 & 1);
224 num3++;
225 }
226 num4 += (int)num5;
227 HijriDay = num4;
228 HijriMonth = num3;
229 HijriYear = num2;
230 }
static readonly DateMapping[] s_hijriYearInfo

References System.DateTime.CompareTo(), System.L, System.Globalization.UmAlQuraCalendar.s_hijriYearInfo, System.Globalization.UmAlQuraCalendar.s_minDate, System.DateTime.Subtract(), System.DateTime.Ticks, and System.TimeSpan.TotalDays.

Referenced by System.Globalization.UmAlQuraCalendar.GetDatePart().