//This function exists as a hack to prevent us from loading all of the non-gregorian //calendars unless they're required. internal Calendar GetCalendarInstanceRare(int calType) { BCLDebug.Assert(calType != Calendar.CAL_GREGORIAN, "calType!=Calendar.CAL_GREGORIAN"); switch (calType) { case Calendar.CAL_GREGORIAN_US: // Gregorian (U.S.) calendar case Calendar.CAL_GREGORIAN_ME_FRENCH: // Gregorian Middle East French calendar case Calendar.CAL_GREGORIAN_ARABIC: // Gregorian Arabic calendar case Calendar.CAL_GREGORIAN_XLIT_ENGLISH: // Gregorian Transliterated English calendar case Calendar.CAL_GREGORIAN_XLIT_FRENCH: // Gregorian Transliterated French calendar return(new GregorianCalendar((GregorianCalendarTypes)calType)); case Calendar.CAL_TAIWAN: // Taiwan Era calendar return(TaiwanCalendar.GetDefaultInstance()); case Calendar.CAL_JAPAN: // Japanese Emperor Era calendar return(JapaneseCalendar.GetDefaultInstance()); case Calendar.CAL_KOREA: // Korean Tangun Era calendar return(KoreanCalendar.GetDefaultInstance()); case Calendar.CAL_HIJRI: // Hijri (Arabic Lunar) calendar return(HijriCalendar.GetDefaultInstance()); case Calendar.CAL_THAI: // Thai calendar return(ThaiBuddhistCalendar.GetDefaultInstance()); case Calendar.CAL_HEBREW: // Hebrew (Lunar) calendar return(HebrewCalendar.GetDefaultInstance()); } return(GregorianCalendar.GetDefaultInstance()); }