Calendar Class

Microsoft Silverlight will reach end of support after October 2021. Learn more.

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

Namespace:  System.Globalization
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
Public MustInherit Class Calendar
[ComVisibleAttribute(true)]
public abstract class Calendar

The Calendar type exposes the following members.

Constructors

  Name Description
Protected methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 Calendar Initializes a new instance of the Calendar class.

Top

Properties

  Name Description
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 Eras When overridden in a derived class, gets the list of eras in the current calendar.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 IsReadOnly Gets a value indicating whether this Calendar object is read-only.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 MaxSupportedDateTime Gets the latest date and time supported by this Calendar object.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 MinSupportedDateTime Gets the earliest date and time supported by this Calendar object.
Public propertySupported by Silverlight for Windows PhoneSupported by Xbox 360 TwoDigitYearMax Gets or sets the last year of a 100-year range that can be represented by a 2-digit year.

Top

Methods

  Name Description
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 AddDays Returns a DateTime that is the specified number of days away from the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 AddHours Returns a DateTime that is the specified number of hours away from the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 AddMilliseconds Returns a DateTime that is the specified number of milliseconds away from the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 AddMinutes Returns a DateTime that is the specified number of minutes away from the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 AddMonths When overridden in a derived class, returns a DateTime that is the specified number of months away from the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 AddSeconds Returns a DateTime that is the specified number of seconds away from the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 AddWeeks Returns a DateTime that is the specified number of weeks away from the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 AddYears When overridden in a derived class, returns a DateTime that is the specified number of years away from the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 Finalize Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetDayOfMonth When overridden in a derived class, returns the day of the month in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetDayOfWeek When overridden in a derived class, returns the day of the week in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetDayOfYear When overridden in a derived class, returns the day of the year in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetDaysInMonth(Int32, Int32) Returns the number of days in the specified month and year of the current era.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetDaysInMonth(Int32, Int32, Int32) When overridden in a derived class, returns the number of days in the specified month, year, and era.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetDaysInYear(Int32) Returns the number of days in the specified year of the current era.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetDaysInYear(Int32, Int32) When overridden in a derived class, returns the number of days in the specified year and era.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetEra When overridden in a derived class, returns the era in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetHour Returns the hours value in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetLeapMonth Calculates the leap month for a specified year and era.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetMilliseconds Returns the milliseconds value in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetMinute Returns the minutes value in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetMonth When overridden in a derived class, returns the month in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetMonthsInYear(Int32) Returns the number of months in the specified year in the current era.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetMonthsInYear(Int32, Int32) When overridden in a derived class, returns the number of months in the specified year in the specified era.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetSecond Returns the seconds value in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetType Gets the Type of the current instance. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetWeekOfYear Returns the week of the year that includes the date in the specified DateTime value.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 GetYear When overridden in a derived class, returns the year in the specified DateTime.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 IsLeapDay(Int32, Int32, Int32) Determines whether the specified date in the current era is a leap day.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 IsLeapDay(Int32, Int32, Int32, Int32) When overridden in a derived class, determines whether the specified date in the specified era is a leap day.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 IsLeapMonth(Int32, Int32) Determines whether the specified month in the specified year in the current era is a leap month.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 IsLeapMonth(Int32, Int32, Int32) When overridden in a derived class, determines whether the specified month in the specified year in the specified era is a leap month.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 IsLeapYear(Int32) Determines whether the specified year in the current era is a leap year.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 IsLeapYear(Int32, Int32) When overridden in a derived class, determines whether the specified year in the specified era is a leap year.
Protected methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) Returns a DateTime that is set to the specified date and time in the current era.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32) When overridden in a derived class, returns a DateTime that is set to the specified date and time in the specified era.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 ToFourDigitYear Converts the specified year to a four-digit year by using the TwoDigitYearMax property to determine the appropriate century.
Public methodSupported by Silverlight for Windows PhoneSupported by Xbox 360 ToString Returns a string that represents the current object. (Inherited from Object.)

Top

Fields

  Name Description
Public fieldStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360 CurrentEra Represents the current era of the current calendar.

Top

Remarks

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

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 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 Calendar and 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 Calendar implementation can define one or more eras. The Calendar class identifies the eras as enumerated integers, where the current era (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 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 Calendar implementations:

Examples

The following code example demonstrates the members of the Calendar class.

Imports System.Globalization

Public Class Example
   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      ' Sets a DateTime to April 3, 2002 of the Gregorian calendar.
      Dim myDT As New DateTime(2002, 4, 3, New GregorianCalendar())

      ' Uses the default calendar of the InvariantCulture.
      Dim myCal As Calendar = CultureInfo.InvariantCulture.Calendar

      ' Displays the values of the DateTime.
      outputBlock.Text += String.Format("April 3, 2002 of the Gregorian calendar:") & vbCrLf
      DisplayValues(outputBlock, myCal, myDT)

      ' Adds 5 to every component of the DateTime.
      myDT = myCal.AddYears(myDT, 5)
      myDT = myCal.AddMonths(myDT, 5)
      myDT = myCal.AddWeeks(myDT, 5)
      myDT = myCal.AddDays(myDT, 5)
      myDT = myCal.AddHours(myDT, 5)
      myDT = myCal.AddMinutes(myDT, 5)
      myDT = myCal.AddSeconds(myDT, 5)
      myDT = myCal.AddMilliseconds(myDT, 5)

      ' Displays the values of the DateTime.
      outputBlock.Text &= "After adding 5 to each component of the DateTime:" & vbCrLf
      DisplayValues(outputBlock, myCal, myDT)

   End Sub 

   Public Shared Sub DisplayValues(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal myCal As Calendar, ByVal myDT As DateTime)
      outputBlock.Text += String.Format("   Era:          {0}", myCal.GetEra(myDT)) & vbCrLf
      outputBlock.Text += String.Format("   Year:         {0}", myCal.GetYear(myDT)) & vbCrLf
      outputBlock.Text += String.Format("   Month:        {0}", myCal.GetMonth(myDT)) & vbCrLf
      outputBlock.Text += String.Format("   DayOfYear:    {0}", myCal.GetDayOfYear(myDT)) & vbCrLf
      outputBlock.Text += String.Format("   DayOfMonth:   {0}", myCal.GetDayOfMonth(myDT)) & vbCrLf
      outputBlock.Text += String.Format("   DayOfWeek:    {0}", myCal.GetDayOfWeek(myDT)) & vbCrLf
      outputBlock.Text += String.Format("   Hour:         {0}", myCal.GetHour(myDT)) & vbCrLf
      outputBlock.Text += String.Format("   Minute:       {0}", myCal.GetMinute(myDT)) & vbCrLf
      outputBlock.Text += String.Format("   Second:       {0}", myCal.GetSecond(myDT)) & vbCrLf
      outputBlock.Text += String.Format("   Milliseconds: {0}", myCal.GetMilliseconds(myDT)) & vbCrLf
      outputBlock.Text &= vbCrLf
   End Sub 
End Class  
' This example produces the following output.
'       April 3, 2002 of the Gregorian calendar:
'          Era:          1
'          Year:         2002
'          Month:        4
'          DayOfYear:    93
'          DayOfMonth:   3
'          DayOfWeek:    Wednesday
'          Hour:         0
'          Minute:       0
'          Second:       0
'          Milliseconds: 0
'       
'       After adding 5 to each component of the DateTime:
'          Era:          1
'          Year:         2007
'          Month:        10
'          DayOfYear:    286
'          DayOfMonth:   13
'          DayOfWeek:    Saturday
'          Hour:         5
'          Minute:       5
'          Second:       5
'          Milliseconds: 5
using System;
using System.Globalization;


public class Example
{

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      // Sets a DateTime to April 3, 2002 of the Gregorian calendar.
      DateTime myDT = new DateTime(2002, 4, 3, new GregorianCalendar());

      // Uses the default calendar of the InvariantCulture.
      Calendar myCal = CultureInfo.InvariantCulture.Calendar;

      // Displays the values of the DateTime.
      outputBlock.Text += String.Format("April 3, 2002 of the Gregorian calendar:") + "\n";
      DisplayValues(outputBlock, myCal, myDT);

      // Adds 5 to every component of the DateTime.
      myDT = myCal.AddYears(myDT, 5);
      myDT = myCal.AddMonths(myDT, 5);
      myDT = myCal.AddWeeks(myDT, 5);
      myDT = myCal.AddDays(myDT, 5);
      myDT = myCal.AddHours(myDT, 5);
      myDT = myCal.AddMinutes(myDT, 5);
      myDT = myCal.AddSeconds(myDT, 5);
      myDT = myCal.AddMilliseconds(myDT, 5);

      // Displays the values of the DateTime.
      outputBlock.Text += "After adding 5 to each component of the DateTime:" + "\n";
      DisplayValues(outputBlock, myCal, myDT);

   }

   public static void DisplayValues(System.Windows.Controls.TextBlock outputBlock, Calendar myCal, DateTime myDT)
   {
      outputBlock.Text += String.Format("   Era:          {0}", myCal.GetEra(myDT)) + "\n";
      outputBlock.Text += String.Format("   Year:         {0}", myCal.GetYear(myDT)) + "\n";
      outputBlock.Text += String.Format("   Month:        {0}", myCal.GetMonth(myDT)) + "\n";
      outputBlock.Text += String.Format("   DayOfYear:    {0}", myCal.GetDayOfYear(myDT)) + "\n";
      outputBlock.Text += String.Format("   DayOfMonth:   {0}", myCal.GetDayOfMonth(myDT)) + "\n";
      outputBlock.Text += String.Format("   DayOfWeek:    {0}", myCal.GetDayOfWeek(myDT)) + "\n";
      outputBlock.Text += String.Format("   Hour:         {0}", myCal.GetHour(myDT)) + "\n";
      outputBlock.Text += String.Format("   Minute:       {0}", myCal.GetMinute(myDT)) + "\n";
      outputBlock.Text += String.Format("   Second:       {0}", myCal.GetSecond(myDT)) + "\n";
      outputBlock.Text += String.Format("   Milliseconds: {0}", myCal.GetMilliseconds(myDT)) + "\n";
      outputBlock.Text += "\n";
   }

}


/*
This code produces the following output.

April 3, 2002 of the Gregorian calendar:
   Era:          1
   Year:         2002
   Month:        4
   DayOfYear:    93
   DayOfMonth:   3
   DayOfWeek:    Wednesday
   Hour:         0
   Minute:       0
   Second:       0
   Milliseconds: 0

After adding 5 to each component of the DateTime:
   Era:          1
   Year:         2007
   Month:        10
   DayOfYear:    286
   DayOfMonth:   13
   DayOfWeek:    Saturday
   Hour:         5
   Minute:       5
   Second:       5
   Milliseconds: 5

*/

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.