Calendar.AlgorithmType Property
.NET Framework 4.5
Gets a value indicating whether the current calendar is solar-based, lunar-based, or a combination of both.
Namespace: System.Globalization
Assembly: mscorlib (in mscorlib.dll)
Property Value
Type: System.Globalization.CalendarAlgorithmTypeOne of the CalendarAlgorithmType values.
The following example uses reflection to instantiate each Calendar type found in the .NET Framework and displays the value of its AlgorithmType property.
using System; using System.Collections; using System.Globalization; using System.Reflection; public class Example { public static void Main() { Assembly assem = Assembly.GetAssembly(typeof(Calendar)); Type[] types = assem.GetExportedTypes(); Type[] calendars = Array.FindAll(types, IsValidCalendar); Array.Sort(calendars, new CalendarComparer()); Console.WriteLine("{0,-30} {1}\n", "Calendar", "Algorithm Type"); foreach (var cal in calendars) { // Instantiate a calendar object. ConstructorInfo ctor = cal.GetConstructor( new Type[] {} ); Calendar calObj = (Calendar) ctor.Invoke( new Type[] {} ); Console.WriteLine("{0,-30} {1}", cal.ToString().Replace("System.Globalization.", ""), cal.InvokeMember("AlgorithmType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, calObj, null)); } } private static bool IsValidCalendar(Type t) { if (t.IsSubclassOf(typeof(Calendar))) if (t.IsAbstract) return false; else return true; else return false; } } public class CalendarComparer : IComparer { public int Compare(object x, object y) { Type tX = (Type) x; Type tY = (Type) y; return tX.Name.CompareTo(tY.Name); } } // The example displays the following output: // Calendar Algorithm Type // // ChineseLunisolarCalendar LunisolarCalendar // GregorianCalendar SolarCalendar // HebrewCalendar LunisolarCalendar // HijriCalendar LunarCalendar // JapaneseCalendar SolarCalendar // JapaneseLunisolarCalendar LunisolarCalendar // JulianCalendar SolarCalendar // KoreanCalendar SolarCalendar // KoreanLunisolarCalendar LunisolarCalendar // PersianCalendar SolarCalendar // TaiwanCalendar SolarCalendar // TaiwanLunisolarCalendar LunisolarCalendar // ThaiBuddhistCalendar SolarCalendar // UmAlQuraCalendar LunarCalendar
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.