Пример #1
0
        // Token: 0x06002F7C RID: 12156 RVA: 0x000B5B8C File Offset: 0x000B3D8C
        internal int GetDatePart(long ticks, int part)
        {
            PersianCalendar.CheckTicksRange(ticks);
            long num  = ticks / 864000000000L + 1L;
            long num2 = CalendricalCalculationsHelper.PersianNewYearOnOrBefore(num);
            int  num3 = (int)Math.Floor((double)(num2 - PersianCalendar.PersianEpoch) / 365.242189 + 0.5) + 1;

            if (part == 0)
            {
                return(num3);
            }
            int num4 = (int)(num - CalendricalCalculationsHelper.GetNumberOfDays(this.ToDateTime(num3, 1, 1, 0, 0, 0, 0, 1)));

            if (part == 1)
            {
                return(num4);
            }
            int num5 = PersianCalendar.MonthFromOrdinalDay(num4);

            if (part == 2)
            {
                return(num5);
            }
            int result = num4 - PersianCalendar.DaysInPreviousMonths(num5);

            if (part == 3)
            {
                return(result);
            }
            throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_DateTimeParsing"));
        }
Пример #2
0
 // Token: 0x06002F75 RID: 12149 RVA: 0x000B59B8 File Offset: 0x000B3BB8
 private long GetAbsoluteDatePersian(int year, int month, int day)
 {
     if (year >= 1 && year <= 9378 && month >= 1 && month <= 12)
     {
         int  num  = PersianCalendar.DaysInPreviousMonths(month) + day - 1;
         int  num2 = (int)(365.242189 * (double)(year - 1));
         long num3 = CalendricalCalculationsHelper.PersianNewYearOnOrBefore(PersianCalendar.PersianEpoch + (long)num2 + 180L);
         return(num3 + (long)num);
     }
     throw new ArgumentOutOfRangeException(null, Environment.GetResourceString("ArgumentOutOfRange_BadYearMonthDay"));
 }