Прочитать на английском

Поделиться через


Calendar Класс

Определение

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

C#
public abstract class Calendar
C#
public abstract class Calendar : ICloneable
C#
[System.Serializable]
public abstract class Calendar
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Calendar : ICloneable
Наследование
Calendar
Производный
Атрибуты
Реализации

Примеры

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

C#
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

*/

Комментарии

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

Примечание

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

Любой момент времени можно представить в виде набора числовых значений с помощью определенного календаря. Например, весеннее равноденствие произошло в (1999, 3, 20, 8, 46, 0, 0,0) по григорианскому календарю, то есть 20 марта 1999 г. н.э. в 8:46:00:0.0. Реализация Calendar может сопоставить любую дату в диапазоне определенного календаря с аналогичным набором числовых значений, а DateTime такие наборы числовых значений могут сопоставляться с текстовым представлением с помощью сведений из Calendar и DateTimeFormatInfo. Текстовое представление может быть с учетом языка и региональных параметров, например "8:46 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)

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

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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