Calendar Класс

Определение

Представляет время в виде раздельных значений, например недель, месяцев и лет.

public ref class Calendar abstract
public ref class Calendar abstract : ICloneable
public abstract class Calendar
public abstract class Calendar : ICloneable
[System.Serializable]
public abstract class Calendar
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Calendar : ICloneable
type Calendar = class
type Calendar = class
    interface ICloneable
[<System.Serializable>]
type Calendar = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Calendar = class
    interface ICloneable
Public MustInherit Class Calendar
Public MustInherit Class Calendar
Implements ICloneable
Наследование
Calendar
Производный
Атрибуты
Реализации

Примеры

В следующем примере кода показаны члены Calendar класса.

using namespace System;
using namespace System::Globalization;
void DisplayValues( Calendar^ myCal, DateTime myDT )
{
   Console::WriteLine( "   Era: {0}", myCal->GetEra( myDT ) );
   Console::WriteLine( "   Year: {0}", myCal->GetYear( myDT ) );
   Console::WriteLine( "   Month: {0}", myCal->GetMonth( myDT ) );
   Console::WriteLine( "   DayOfYear: {0}", myCal->GetDayOfYear( myDT ) );
   Console::WriteLine( "   DayOfMonth: {0}", myCal->GetDayOfMonth( myDT ) );
   Console::WriteLine( "   DayOfWeek: {0}", myCal->GetDayOfWeek( myDT ) );
   Console::WriteLine( "   Hour: {0}", myCal->GetHour( myDT ) );
   Console::WriteLine( "   Minute: {0}", myCal->GetMinute( myDT ) );
   Console::WriteLine( "   Second: {0}", myCal->GetSecond( myDT ) );
   Console::WriteLine( "   Milliseconds: {0}", myCal->GetMilliseconds( myDT ) );
   Console::WriteLine();
}

int main()
{
   
   // Sets a DateTime to April 3, 2002 of the Gregorian calendar.
   DateTime myDT = DateTime(2002,4,3,gcnew GregorianCalendar);
   
   // Uses the default calendar of the InvariantCulture.
   Calendar^ myCal = CultureInfo::InvariantCulture->Calendar;
   
   // Displays the values of the DateTime.
   Console::WriteLine( "April 3, 2002 of the Gregorian calendar:" );
   DisplayValues( 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.
   Console::WriteLine( "After adding 5 to each component of the DateTime:" );
   DisplayValues( myCal, myDT );
}

/*
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

*/
using System;
using System.Globalization;

public class SamplesCalendar  {

   public static void Main()  {

      // 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.
      Console.WriteLine( "April 3, 2002 of the Gregorian calendar:" );
      DisplayValues( 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.
      Console.WriteLine( "After adding 5 to each component of the DateTime:" );
      DisplayValues( myCal, myDT );
   }

   public static void DisplayValues( Calendar myCal, DateTime myDT )  {
      Console.WriteLine( "   Era:          {0}", myCal.GetEra( myDT ) );
      Console.WriteLine( "   Year:         {0}", myCal.GetYear( myDT ) );
      Console.WriteLine( "   Month:        {0}", myCal.GetMonth( myDT ) );
      Console.WriteLine( "   DayOfYear:    {0}", myCal.GetDayOfYear( myDT ) );
      Console.WriteLine( "   DayOfMonth:   {0}", myCal.GetDayOfMonth( myDT ) );
      Console.WriteLine( "   DayOfWeek:    {0}", myCal.GetDayOfWeek( myDT ) );
      Console.WriteLine( "   Hour:         {0}", myCal.GetHour( myDT ) );
      Console.WriteLine( "   Minute:       {0}", myCal.GetMinute( myDT ) );
      Console.WriteLine( "   Second:       {0}", myCal.GetSecond( myDT ) );
      Console.WriteLine( "   Milliseconds: {0}", myCal.GetMilliseconds( myDT ) );
      Console.WriteLine();
   }
}


/*
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

*/
Imports System.Globalization


Public Class SamplesCalendar   

   Public Shared Sub Main()

      ' 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.
      Console.WriteLine("April 3, 2002 of the Gregorian calendar:")
      DisplayValues(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.
      Console.WriteLine("After adding 5 to each component of the DateTime:")
      DisplayValues(myCal, myDT)

   End Sub

   Public Shared Sub DisplayValues(myCal As Calendar, myDT As DateTime)
      Console.WriteLine("   Era:          {0}", myCal.GetEra(myDT))
      Console.WriteLine("   Year:         {0}", myCal.GetYear(myDT))
      Console.WriteLine("   Month:        {0}", myCal.GetMonth(myDT))
      Console.WriteLine("   DayOfYear:    {0}", myCal.GetDayOfYear(myDT))
      Console.WriteLine("   DayOfMonth:   {0}", myCal.GetDayOfMonth(myDT))
      Console.WriteLine("   DayOfWeek:    {0}", myCal.GetDayOfWeek(myDT))
      Console.WriteLine("   Hour:         {0}", myCal.GetHour(myDT))
      Console.WriteLine("   Minute:       {0}", myCal.GetMinute(myDT))
      Console.WriteLine("   Second:       {0}", myCal.GetSecond(myDT))
      Console.WriteLine("   Milliseconds: {0}", myCal.GetMilliseconds(myDT))
      Console.WriteLine()
   End Sub

End Class


'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

Комментарии

Календарь делит время на единицы измерения, такие как недели, месяцы и годы. Число, Длина и начало подразделений различаются в каждом календаре.

Примечание

Дополнительные сведения об использовании классов Calendar в .NET см. в разделе Работа с календарями.

Любой момент времени можно представить в виде набора числовых значений с помощью определенного календаря. Например, верналное равноденствие произошло в (1999, 3, 20, 8, 46, 0, 0,0) в григорианском календаре, то есть 20 марта, 1999 года Н.Э. в 8:46:00:0.0. Реализация Calendar может сопоставлять любую дату в диапазоне определенного календаря с аналогичным набором числовых значений, а DateTime также сопоставлять такие наборы числовых значений с текстовым представлением, используя сведения из Calendar и DateTimeFormatInfo . Текстовое представление может быть чувствительно к языку и региональным параметрам, например "8:46 AM Март 20 1999 AD" для языка и региональных параметров "en-US", или без учета языка и региональных параметров, например "1999-03-20T08:46:00" в формате ISO 8601.

CalendarРеализация может определять одну или несколько Эр. CalendarКласс определяет эры как перечислимые целые числа, где текущая эра ( CurrentEra ) имеет значение 0.

Важно!

Эры в японских календарях основаны на периодах царствования императоров. Таким образом, ожидается наступление новой эры. Например, 1 мая 2019 года в JapaneseCalendar и JapaneseLunisolarCalendar отмечено как начало эры Рэйва. Изменение эры затрагивает все приложения, использующие эти календари. Дополнительные сведения и определение того, затрагиваются ли ваши приложения, см. в разделе Обработка новой эры в японском календаре в .NET. сведения о тестировании приложений на Windows системах для обеспечения их готовности к изменению эры см. в разделе подготовка приложения к изменению японской эры. Дополнительные сведения о функциях .NET, поддерживающих календари с несколькими Эр, и рекомендации при работе с календарями, поддерживающими несколько эр, см. в разделе Работа с Эр.

Для повышения разницы между календарным годом и фактическим временем поворота земли вокруг солнца или фактического времени, когда Луна поворачивается вокруг земли, високосный год имеет различное число дней от стандартного календарного года. Каждая Calendar Реализация определяет високосные годы по-разному.

Для обеспечения согласованности первому элементу в каждом интервале (например, первому месяцу) присваивается значение 1.

System.GlobalizationПространство имен включает следующие Calendar реализации:

Конструкторы

Calendar()

Инициализирует новый экземпляр класса Calendar.

Поля

CurrentEra

Представляет текущую эру для текущего календаря. Значение этого поля равно 0.

Свойства

AlgorithmType

Возвращает значение, показывающее, является ли текущий календарь солнечным, лунным или сочетанием и того, и другого.

DaysInYearBeforeMinSupportedYear

Получает число дней в году, который предшествует году, указанному свойством MinSupportedDateTime.

Eras

При переопределении в производном классе возвращает список эр в текущем календаре.

IsReadOnly

Возвращает значение, указывающее, является ли объект Calendar доступным только для чтения.

MaxSupportedDateTime

Возвращает самые последние дату и время, поддерживаемые этим объектом Calendar.

MinSupportedDateTime

Возвращает самые ранние дату и время, поддерживаемые этим объектом Calendar.

TwoDigitYearMax

Возвращает или задает последний год в диапазоне ста лет, для которого существует двузначное представление года.

Методы

AddDays(DateTime, Int32)

Возвращает DateTime как заданное число дней из заданного объекта DateTime.

AddHours(DateTime, Int32)

Возвращает DateTime как заданное число часов из заданного объекта DateTime.

AddMilliseconds(DateTime, Double)

Возвращает DateTime как заданное число миллисекунд из заданного объекта DateTime.

AddMinutes(DateTime, Int32)

Возвращает DateTime как заданное число минут из заданного объекта DateTime.

AddMonths(DateTime, Int32)

При переопределении в производном классе возвращает DateTime как заданное число месяцев из заданного DateTime.

AddSeconds(DateTime, Int32)

Возвращает DateTime как заданное число секунд из заданного объекта DateTime.

AddWeeks(DateTime, Int32)

Возвращает DateTime как заданное число недель из заданного объекта DateTime.

AddYears(DateTime, Int32)

При переопределении в производном классе возвращает DateTime как заданное число лет из заданного DateTime.

Clone()

Создает новый объект, являющийся копией текущего объекта Calendar.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetDayOfMonth(DateTime)

При переопределении в производном классе возвращает день месяца в заданном DateTime.

GetDayOfWeek(DateTime)

При переопределении в производном классе возвращает день недели в заданном DateTime.

GetDayOfYear(DateTime)

При переопределении в производном классе возвращает день года в заданном DateTime.

GetDaysInMonth(Int32, Int32)

Возвращает число дней в указанном месяце указанных года текущей эры.

GetDaysInMonth(Int32, Int32, Int32)

При переопределении в производном классе возвращает число дней в указанном месяце, году и в указанной эре.

GetDaysInYear(Int32)

Возвращает число дней в указанном году текущей эры.

GetDaysInYear(Int32, Int32)

При переопределении в производном классе возвращает число дней в указанном году и в указанной эре.

GetEra(DateTime)

При переопределении в производном классе возвращает эру заданного DateTime.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetHour(DateTime)

Возвращает значение часов в заданном DateTime.

GetLeapMonth(Int32)

Вычисляет високосный месяц для заданного года.

GetLeapMonth(Int32, Int32)

Вычисляет високосный месяц для заданных года и эры.

GetMilliseconds(DateTime)

Возвращает значение миллисекунд в заданном DateTime.

GetMinute(DateTime)

Возвращает значение минут в заданном DateTime.

GetMonth(DateTime)

При переопределении в производном классе возвращает месяц в заданном DateTime.

GetMonthsInYear(Int32)

Возвращает число месяцев в указанном году текущей эры.

GetMonthsInYear(Int32, Int32)

При переопределении в производном классе возвращает число месяцев в указанном году указанной эры.

GetSecond(DateTime)

Возвращает значение секунд в заданном DateTime.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetWeekOfYear(DateTime, CalendarWeekRule, DayOfWeek)

Возвращает неделю года, к которой относится дата в заданном значении DateTime.

GetYear(DateTime)

При переопределении в производном классе возвращает год в заданном DateTime.

IsLeapDay(Int32, Int32, Int32)

Определяет, является ли указанная дата текущей эры високосным днем.

IsLeapDay(Int32, Int32, Int32, Int32)

При переопределении в производном классе определяет, является ли указанная дата указанной эры високосным днем.

IsLeapMonth(Int32, Int32)

Определяет, является ли указанный месяц указанного года текущей эры високосным месяцем.

IsLeapMonth(Int32, Int32, Int32)

При переопределении в производном классе определяет, является ли указанный месяц указанных года и эры високосным месяцем.

IsLeapYear(Int32)

Определяет, является ли указанный год текущей эры високосным годом.

IsLeapYear(Int32, Int32)

При переопределении в производном классе определяет, является ли указанный год указанной эры високосным годом.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ReadOnly(Calendar)

Возвращает доступную только для чтения версию указанного объекта Calendar.

ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Возвращает DateTime с заданными значениями даты и времени текущей эры.

ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

При переопределении в производном классе возвращает DateTime со значением даты и времени в заданной эре.

ToFourDigitYear(Int32)

Преобразует заданный год в четырехзначное представление с использованием свойства TwoDigitYearMax для определения века.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел