11 0, 30, 59, 89, 118, 148, 177, 207, 236, 266,
43 if (value < -2 || value > 2)
67 if (value < 99 || value > 9666)
82 int num = (HijriYear - 1) / 30 * 30;
83 int num2 = HijriYear - num - 1;
84 long num3 = (long)num * 10631
L / 30 + 227013;
112 if (year < 1 || year > 9666)
121 if (
year == 9666 && month > 4)
125 if (month < 1 || month > 12)
134 long num = ticks / 864000000000
L + 1;
136 int num2 = (int)((num - 227013) * 30 / 10631) + 1;
144 else if (num == num3)
149 else if (num > num3 + num4)
182 if (months < -120000 || months > 120000)
189 int num2 = datePart2 - 1 + months;
192 datePart2 = num2 % 12 + 1;
193 datePart += num2 / 12;
197 datePart2 = 12 + (num2 + 1) % 12;
198 datePart += (num2 - 11) / 12;
201 if (num > daysInMonth)
283 if (day < 1 || day > daysInMonth)
309 return (
year * 11 + 14) % 30 < 11;
312 public override DateTime ToDateTime(
int year,
int month,
int day,
int hour,
int minute,
int second,
int millisecond,
int era)
315 if (day < 1 || day > daysInMonth)
320 if (absoluteDateHijri < 0)
335 return base.ToFourDigitYear(
year);
356 if (registryKey ==
null)
360 object value = registryKey.GetValue(
"AddHijriDate");
367 if (
string.Compare(
text, 0,
"AddHijriDate", 0,
"AddHijriDate".Length,
StringComparison.OrdinalIgnoreCase) == 0)
369 if (
text.Length ==
"AddHijriDate".Length)
378 if (num >= -2 && num <= 2)
static readonly RegistryKey CurrentUser
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 CultureInfo InvariantCulture
long GetAbsoluteDateHijri(int y, int m, int d)
override bool IsLeapYear(int year, int era)
override int GetEra(DateTime time)
override DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era)
override DateTime MaxSupportedDateTime
virtual int GetDatePart(long ticks, int part)
override int GetDaysInMonth(int year, int month, int era)
long DaysUpToHijriYear(int HijriYear)
override bool IsLeapDay(int year, int month, int day, int era)
override int GetMonth(DateTime time)
static void CheckYearMonthRange(int year, int month, int era)
static readonly DateTime s_calendarMaxValue
override DateTime AddMonths(DateTime time, int months)
override int GetDaysInYear(int year, int era)
static void CheckEraRange(int era)
override int GetLeapMonth(int year, int era)
static readonly int HijriEra
static void CheckYearRange(int year, int era)
override int GetDayOfYear(DateTime time)
static readonly int[] s_hijriMonthDays
override int GetYear(DateTime time)
int GetHijriDateAdjustment()
override DateTime MinSupportedDateTime
override int GetDayOfMonth(DateTime time)
override int TwoDigitYearMax
override CalendarAlgorithmType AlgorithmType
override bool IsLeapMonth(int year, int month, int era)
static int GetAdvanceHijriDate()
override int ToFourDigitYear(int year)
static readonly DateTime s_calendarMinValue
override int DaysInYearBeforeMinSupportedYear
static void CheckTicksRange(long ticks)
override int GetMonthsInYear(int year, int era)
override DateTime AddYears(DateTime time, int years)
override DayOfWeek GetDayOfWeek(DateTime time)
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 string ArgumentOutOfRange_Bounds_Lower_Upper
static void ThrowArgumentOutOfRange_Month(int month)
static readonly DateTime MaxValue