CheckTicksRange() private method

private CheckTicksRange ( long ticks ) : void
ticks long
return void
コード例 #1
0
        // 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"));
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
 /// <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);
 }