System.Globalization.Calendar Class

Represents time in divisions, such as weeks, months, and years.

See Also: Calendar Members


public abstract class Calendar : ICloneable


A calendar divides time into units, such as weeks, months, and years. The number, length, and start of the divisions vary in each calendar.


For information about using the calendar classes in the .NET Framework, see Working with Calendars.

Any moment in time can be represented as a set of numeric values using a particular calendar. For example, a vernal equinox occurred at (1999, 3, 20, 8, 46, 0, 0.0) in the Gregorian calendar, that is, March 20, 1999 C.E. at 8:46:00:0.0. An implementation of System.Globalization.Calendar can map any date in the range of a specific calendar to a similar set of numeric values, and DateTime can map such sets of numeric values to a textual representation using information from System.Globalization.Calendar and System.Globalization.DateTimeFormatInfo. The textual representation can be culture-sensitive, for example, "8:46 AM March 20th 1999 AD" for the en-US culture, or culture-insensitive, for example, "1999-03-20T08:46:00" in ISO 8601 format.

A System.Globalization.Calendar implementation can define one or more eras. The System.Globalization.Calendar class identifies the eras as enumerated integers, where the current era (Calendar.CurrentEra) has the value 0.

To make up for the difference between the calendar year and the actual time that the earth rotates around the sun or the actual time that the moon rotates around the earth, a leap year has a different number of days from a standard calendar year. Each System.Globalization.Calendar implementation defines leap years differently.

For consistency, the first unit in each interval (the first month, for example) is assigned the value 1.

The System.Globalization namespace includes the following System.Globalization.Calendar implementations:


Namespace: System.Globalization
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0,,