7 0, 31, 59, 90, 120, 151, 181, 212, 243, 273,
13 0, 31, 60, 91, 121, 152, 182, 213, 244, 274,
36 for (
int i = 0; i <
m_EraInfo.Length; i++)
41 return (
int[])
m_eras.Clone();
67 for (
int i = 0; i <
m_EraInfo.Length; i++)
82 for (
int num2 = i - 1; num2 >= 0; num2--)
118 int num = (int)(ticks / 864000000000
L);
119 int num2 = num / 146097;
120 num -= num2 * 146097;
121 int num3 = num / 36524;
127 int num4 = num / 1461;
129 int num5 = num / 365;
136 return num2 * 400 + num3 * 100 + num4 * 4 + num5 + 1;
145 for (i = (num >> 5) + 1; num >=
array[i]; i++)
152 return num -
array[i - 1] + 1;
157 if (
year >= 1 && year <= 9999 && month >= 1 && month <= 12)
160 if (day >= 1 && day <=
array[month] -
array[month - 1])
163 int num2 = num * 365 + num / 4 - num / 100 + num / 400 +
array[month - 1] + day - 1;
175 internal static long TimeToTicks(
int hour,
int minute,
int second,
int millisecond)
177 if (hour >= 0 && hour < 24 && minute >= 0 && minute < 60 && second >= 0 && second < 60)
179 if (millisecond < 0 || millisecond >= 1000)
198 if (months < -120000 || months > 120000)
206 int num2 = datePart2 - 1 + months;
209 datePart2 = num2 % 12 + 1;
210 datePart += num2 / 12;
214 datePart2 = 12 + (num2 + 1) % 12;
215 datePart += (num2 - 11) / 12;
218 int num3 =
array[datePart2] -
array[datePart2 - 1];
223 long ticks =
DateToTicks(datePart, datePart2, num) + time.Ticks % 864000000000
L;
241 return (
DayOfWeek)((time.Ticks / 864000000000
L + 1) % 7);
252 if (month < 1 || month > 12)
263 if (
year % 4 != 0 || (
year % 100 == 0 &&
year % 400 != 0))
272 long ticks = time.
Ticks;
273 for (
int i = 0; i <
m_EraInfo.Length; i++)
296 long ticks = time.
Ticks;
298 for (
int i = 0; i <
m_EraInfo.Length; i++)
310 long ticks = time.
Ticks;
311 for (
int i = 0; i <
m_EraInfo.Length; i++)
331 if (month == 2 && day == 29)
352 if (month < 1 || month > 12)
366 return year % 400 == 0;
395 int num =
year % 100;
396 return (twoDigitYearMax / 100 - ((num > twoDigitYearMax % 100) ? 1 : 0)) * 100 + num;
398 if (year < m_minYear || year >
m_maxYear)
virtual DateTime MaxSupportedDateTime
virtual int CurrentEraValue
virtual DateTime MinSupportedDateTime
static void CheckAddResult(long ticks, DateTime minValue, DateTime maxValue)
static CultureInfo InvariantCulture
DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era)
int GetDayOfYear(DateTime time)
void CheckTicksRange(long ticks)
int GetLeapMonth(int year, int era)
int GetDaysInMonth(int year, int month, int era)
static long GetAbsoluteDate(int year, int month, int day)
bool IsLeapDay(int year, int month, int day, int era)
DayOfWeek GetDayOfWeek(DateTime time)
static long DateToTicks(int year, int month, int day)
DateTime AddYears(DateTime time, int years)
GregorianCalendarHelper(Calendar cal, EraInfo[] eraInfo)
int GetWeekOfYear(DateTime time, CalendarWeekRule rule, DayOfWeek firstDayOfWeek)
static readonly int[] DaysToMonth366
int GetYear(int year, DateTime time)
int GetDatePart(long ticks, int part)
int GetDayOfMonth(DateTime time)
static long TimeToTicks(int hour, int minute, int second, int millisecond)
int GetDaysInYear(int year, int era)
int GetMonth(DateTime time)
bool IsLeapMonth(int year, int month, int era)
int GetYear(DateTime time)
DateTime AddMonths(DateTime time, int months)
void ValidateYearInEra(int year, int era)
int GetMonthsInYear(int year, int era)
int GetEra(DateTime time)
bool IsValidYear(int year, int era)
int ToFourDigitYear(int year, int twoDigitYearMax)
bool IsLeapYear(int year, int era)
int GetGregorianYear(int year, int era)
static readonly int[] DaysToMonth365
int GetYearOffset(int year, int era, bool throwOnError)
static Calendar GetDefaultInstance()
static long TimeToTicks(int hour, int minute, int second)
static bool EnforceJapaneseEraYearRanges
static string ArgumentOutOfRange_Range
static string ArgumentOutOfRange_NeedPosNum
static string ArgumentOutOfRange_BadYearMonthDay
static string ArgumentOutOfRange_Era
static string Format(string resourceFormat, object p1)
static string ArgumentOutOfRange_CalendarRange
static string Argument_NoEra
static string ArgumentOutOfRange_BadHourMinuteSecond
static string ArgumentOutOfRange_NeedNonNegNum
static string ArgumentOutOfRange_InvalidEraValue
static void ThrowArgumentOutOfRange_Month(int month)