//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());
}