CultureInfo.OptionalCalendars Property
Gets the list of calendars that can be used by the culture.
[Visual Basic] Public Overridable ReadOnly Property OptionalCalendars As Calendar _ () [C#] public virtual Calendar[] OptionalCalendars {get;} [C++] public: __property virtual Calendar* get_OptionalCalendars(); [JScript] public function get OptionalCalendars() : Calendar[];
Property Value
An array of type Calendar that represents the calendars that can be used by the culture represented by the current CultureInfo.
Remarks
You can change the calendar used by the current CultureInfo by setting the Calendar property of DateTimeFormat, which is an instance of the DateTimeFormatInfo class. The new calendar must be one of the calendars listed in OptionalCalendars. DateTimeFormat also includes other properties that customize the date and time formatting associated with that Calendar.
Example
[Visual Basic, C#, C++] The following code example demonstrates how to determine the GregorianCalendar versions supported by the culture.
[Visual Basic] Imports System Imports System.Globalization Public Class SamplesCultureInfo Public Shared Sub Main() ' Gets the calendars supported by the ar-SA culture. Dim myOptCals As Calendar() = New CultureInfo("ar-SA").OptionalCalendars ' Checks which ones are GregorianCalendar then determines the GregorianCalendar version. Console.WriteLine("The ar-SA culture supports the following calendars:") Dim cal As Calendar For Each cal In myOptCals If cal.GetType() Is GetType(GregorianCalendar) Then Dim myGreCal As GregorianCalendar = CType(cal, GregorianCalendar) Dim calType As GregorianCalendarTypes = myGreCal.CalendarType Console.WriteLine(" {0} ({1})", cal, calType) Else Console.WriteLine(" {0}", cal) End If Next cal End Sub 'Main End Class 'SamplesCultureInfo 'This code produces the following output. ' 'The ar-SA culture supports the following calendars: ' System.Globalization.HijriCalendar ' System.Globalization.GregorianCalendar (USEnglish) ' System.Globalization.GregorianCalendar (MiddleEastFrench) ' System.Globalization.GregorianCalendar (Arabic) ' System.Globalization.GregorianCalendar (Localized) ' System.Globalization.GregorianCalendar (TransliteratedFrench) [C#] using System; using System.Globalization; public class SamplesCultureInfo { public static void Main() { // Gets the calendars supported by the ar-SA culture. Calendar[] myOptCals = new CultureInfo("ar-SA").OptionalCalendars; // Checks which ones are GregorianCalendar then determines the GregorianCalendar version. Console.WriteLine( "The ar-SA culture supports the following calendars:" ); foreach ( Calendar cal in myOptCals ) { if ( cal.GetType() == typeof( GregorianCalendar ) ) { GregorianCalendar myGreCal = (GregorianCalendar) cal; GregorianCalendarTypes calType = myGreCal.CalendarType; Console.WriteLine( " {0} ({1})", cal, calType ); } else { Console.WriteLine( " {0}", cal ); } } } } /* This code produces the following output. The ar-SA culture supports the following calendars: System.Globalization.HijriCalendar System.Globalization.GregorianCalendar (USEnglish) System.Globalization.GregorianCalendar (MiddleEastFrench) System.Globalization.GregorianCalendar (Arabic) System.Globalization.GregorianCalendar (Localized) System.Globalization.GregorianCalendar (TransliteratedFrench) */ [C++] #using <mscorlib.dll> using namespace System; using namespace System::Globalization; using namespace System::Collections; int main() { // Calendar* myOptCals[] = new CultureInfo(S"ar-SA") -> OptionalCalendars; CultureInfo * MyCI = new CultureInfo(S"ar-SA"); Calendar* myOptCals[] = MyCI -> OptionalCalendars; // Checks which ones are GregorianCalendar then determines the GregorianCalendar version. Console::WriteLine(S"The ar-SA culture supports the following calendars:"); IEnumerator* myEnum = myOptCals->GetEnumerator(); while (myEnum->MoveNext()) { Calendar* cal = __try_cast<Calendar*>(myEnum->Current); if (cal -> GetType() == __typeof(GregorianCalendar)) { GregorianCalendar * myGreCal = dynamic_cast<GregorianCalendar*>(cal); GregorianCalendarTypes calType = myGreCal -> CalendarType; Console::WriteLine(S" {0} ( {1})", cal, __box(calType)); } else Console::WriteLine(S" {0}", cal); } } /* This code produces the following output. The ar-SA culture supports the following calendars: System.Globalization.HijriCalendar System.Globalization.GregorianCalendar ( USEnglish) System.Globalization.GregorianCalendar ( MiddleEastFrench) System.Globalization.GregorianCalendar ( Arabic) System.Globalization.GregorianCalendar ( Localized) System.Globalization.GregorianCalendar ( TransliteratedFrench) */
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
See Also
CultureInfo Class | CultureInfo Members | System.Globalization Namespace | Calendar | DateTimeFormat | DateTimeFormatInfo