// Token: 0x06002EB2 RID: 11954 RVA: 0x000B35A0 File Offset: 0x000B17A0 internal virtual int GetDatePart(long ticks, int part) { HijriCalendar.CheckTicksRange(ticks); long num = ticks / 864000000000L + 1L; num += (long)this.HijriAdjustment; int num2 = (int)((num - 227013L) * 30L / 10631L) + 1; long num3 = this.DaysUpToHijriYear(num2); long num4 = (long)this.GetDaysInYear(num2, 0); if (num < num3) { num3 -= num4; num2--; } else if (num == num3) { num2--; num3 -= (long)this.GetDaysInYear(num2, 0); } else if (num > num3 + num4) { num3 += num4; num2++; } if (part == 0) { return(num2); } int num5 = 1; num -= num3; if (part == 1) { return((int)num); } while (num5 <= 12 && num > (long)HijriCalendar.HijriMonthDays[num5 - 1]) { num5++; } num5--; if (part == 2) { return(num5); } int result = (int)(num - (long)HijriCalendar.HijriMonthDays[num5 - 1]); if (part == 3) { return(result); } throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_DateTimeParsing")); }
internal virtual int GetDatePart(long ticks, int part) { HijriCalendar.CheckTicksRange(ticks); long num1 = ticks / 864000000000L + 1L + (long)this.HijriAdjustment; int num2 = (int)((num1 - 227013L) * 30L / 10631L) + 1; long hijriYear = this.DaysUpToHijriYear(num2); long num3 = (long)this.GetDaysInYear(num2, 0); if (num1 < hijriYear) { hijriYear -= num3; --num2; } else if (num1 == hijriYear) { --num2; hijriYear -= (long)this.GetDaysInYear(num2, 0); } else if (num1 > hijriYear + num3) { hijriYear += num3; ++num2; } if (part == 0) { return(num2); } int num4 = 1; long num5 = num1 - hijriYear; if (part == 1) { return((int)num5); } while (num4 <= 12 && num5 > (long)HijriCalendar.HijriMonthDays[num4 - 1]) { ++num4; } int num6 = num4 - 1; if (part == 2) { return(num6); } int num7 = (int)(num5 - (long)HijriCalendar.HijriMonthDays[num6 - 1]); if (part == 3) { return(num7); } throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_DateTimeParsing")); }
/// <summary>返回指定 <see cref="T:System.DateTime" /> 中的纪元。</summary> /// <returns>表示指定的 <see cref="T:System.DateTime" /> 中纪元的整数。</returns> /// <param name="time">要读取的 <see cref="T:System.DateTime" />。</param> public override int GetEra(DateTime time) { HijriCalendar.CheckTicksRange(time.Ticks); return(HijriCalendar.HijriEra); }