11 0, 31, 62, 93, 124, 155, 186, 216, 246, 276,
44 if (value < 99 || value > 9378)
54 if (year < 1 || year > 9378 || month < 1 || month > 12)
59 int num2 = (int)(365.242189 * (
double)(
year - 1));
66 if (ticks < s_minDate.Ticks || ticks >
s_maxDate.Ticks)
83 if (year < 1 || year > 9378)
92 if (
year == 9378 && month > 10)
96 if (month < 1 || month > 12)
120 long num = ticks / 864000000000
L + 1;
147 if (months < -120000 || months > 120000)
154 int num2 = datePart2 - 1 + months;
157 datePart2 = num2 % 12 + 1;
158 datePart += num2 / 12;
162 datePart2 = 12 + (num2 + 1) % 12;
163 datePart += (num2 - 11) / 12;
166 if (num > daysInMonth)
198 if (month == 10 &&
year == 9378)
253 if (day < 1 || day > daysInMonth)
286 public override DateTime ToDateTime(
int year,
int month,
int day,
int hour,
int minute,
int second,
int millisecond,
int era)
289 if (day < 1 || day > daysInMonth)
294 if (absoluteDatePersian < 0)
309 return base.ToFourDigitYear(
year);
static long TimeToTicks(int hour, int minute, int second, int millisecond)
static void CheckAddResult(long ticks, DateTime minValue, DateTime maxValue)
static int GetSystemTwoDigitYearSetting(CalendarId CalID, int defaultYearValue)
static long GetNumberOfDays(DateTime date)
static long PersianNewYearOnOrBefore(long numberOfDays)
static readonly long s_persianEpoch
override DateTime MaxSupportedDateTime
static void CheckEraRange(int era)
override int GetMonthsInYear(int year, int era)
override DateTime AddMonths(DateTime time, int months)
override int ToFourDigitYear(int year)
override bool IsLeapDay(int year, int month, int day, int era)
override int GetEra(DateTime time)
static void CheckYearRange(int year, int era)
override int GetDaysInYear(int year, int era)
static readonly int PersianEra
override int GetYear(DateTime time)
override int GetDaysInMonth(int year, int month, int era)
static int DaysInPreviousMonths(int month)
int GetDatePart(long ticks, int part)
override DateTime AddYears(DateTime time, int years)
static readonly DateTime s_minDate
override bool IsLeapMonth(int year, int month, int era)
override int GetLeapMonth(int year, int era)
static readonly DateTime s_maxDate
static void CheckYearMonthRange(int year, int month, int era)
override int GetMonth(DateTime time)
override DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era)
override int TwoDigitYearMax
override CalendarAlgorithmType AlgorithmType
static void CheckTicksRange(long ticks)
static readonly int[] s_daysToMonth
override int GetDayOfMonth(DateTime time)
override DayOfWeek GetDayOfWeek(DateTime time)
override DateTime MinSupportedDateTime
override int GetDayOfYear(DateTime time)
override bool IsLeapYear(int year, int era)
static long GetAbsoluteDatePersian(int year, int month, int day)
override CalendarId BaseCalendarID
static int MonthFromOrdinalDay(int ordinalDay)
static double Floor(double d)
static string ArgumentOutOfRange_Range
static string ArgumentOutOfRange_BadYearMonthDay
static string Format(string resourceFormat, object p1)
static string InvalidOperation_DateTimeParsing
static string ArgumentOutOfRange_CalendarRange
static string ArgumentOutOfRange_Day
static string ArgumentOutOfRange_NeedNonNegNum
static string ArgumentOutOfRange_InvalidEraValue
static void ThrowArgumentOutOfRange_Month(int month)
static readonly DateTime MaxValue