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


GregorianCalendar Класс

Определение

Представляет григорианский календарь.

public ref class GregorianCalendar : System::Globalization::Calendar
public class GregorianCalendar : System.Globalization.Calendar
[System.Serializable]
public class GregorianCalendar : System.Globalization.Calendar
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class GregorianCalendar : System.Globalization.Calendar
type GregorianCalendar = class
    inherit Calendar
[<System.Serializable>]
type GregorianCalendar = class
    inherit Calendar
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type GregorianCalendar = class
    inherit Calendar
Public Class GregorianCalendar
Inherits Calendar
Наследование
GregorianCalendar
Атрибуты

Примеры

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

using namespace System;
using namespace System::Globalization;
using namespace System::Collections;
int main()
{
   
   // Creates strings with punctuation and without.
   String^ strADPunc = "A.D.";
   String^ strADNoPunc = "AD";
   String^ strCEPunc = "C.E.";
   String^ strCENoPunc = "CE";
   
   // Calls DTFI::GetEra for each culture that uses GregorianCalendar as the default calendar.
   Console::WriteLine( "            ----- AD -----  ----- CE -----" );
   Console::WriteLine( "CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR" );
   IEnumerator^ en = CultureInfo::GetCultures( CultureTypes::SpecificCultures )->GetEnumerator();
   while ( en->MoveNext() )
   {
      CultureInfo^ myCI = safe_cast<CultureInfo^>(en->Current);
      Console::Write( "{0, -12}", myCI );
      Console::Write( "{0,-7}{1,-9}", myCI->DateTimeFormat->GetEra( strADPunc ), myCI->DateTimeFormat->GetEra( strADNoPunc ) );
      Console::Write( "{0, -7}{1, -9}", myCI->DateTimeFormat->GetEra( strCEPunc ), myCI->DateTimeFormat->GetEra( strCENoPunc ) );
      Console::Write( "{0}", myCI->Calendar );
      Console::WriteLine();
   }
}

/*
This code produces the following output.  This output has been cropped for brevity.

            ----- AD -----  ----- CE -----
CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR
ar-SA       -1     -1       -1     -1       System.Globalization.HijriCalendar
ar-IQ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-EG       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-DZ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-MA       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-TN       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-OM       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-YE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-SY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-JO       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LB       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-KW       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-AE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-BH       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-QA       1      1        -1     -1       System.Globalization.GregorianCalendar
bg-BG       1      1        -1     -1       System.Globalization.GregorianCalendar
ca-ES       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-TW       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-CN       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-HK       1      1        -1     -1       System.Globalization.GregorianCalendar
zh-SG       1      1        -1     -1       System.Globalization.GregorianCalendar
zh-MO       1      1        -1     -1       System.Globalization.GregorianCalendar
cs-CZ       -1     -1       -1     -1       System.Globalization.GregorianCalendar
da-DK       1      1        -1     -1       System.Globalization.GregorianCalendar

*/
using System;
using System.Globalization;

public class SamplesGregorianCalendar  {

   public static void Main()  {

      // Creates strings with punctuation and without.
      String strADPunc = "A.D.";
      String strADNoPunc = "AD";
      String strCEPunc = "C.E.";
      String strCENoPunc = "CE";

      // Calls DTFI.GetEra for each culture that uses GregorianCalendar as the default calendar.
      Console.WriteLine( "            ----- AD -----  ----- CE -----" );
      Console.WriteLine( "CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR" );
      foreach ( CultureInfo myCI in CultureInfo.GetCultures( CultureTypes.SpecificCultures ) )  {
         Console.Write( "{0,-12}", myCI );
         Console.Write( "{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra( strADPunc ), myCI.DateTimeFormat.GetEra( strADNoPunc ) );
         Console.Write( "{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra( strCEPunc ), myCI.DateTimeFormat.GetEra( strCENoPunc ) );
         Console.Write( "{0}", myCI.Calendar );
         Console.WriteLine();
      }
   }
}

/*
This code produces the following output.  This output has been cropped for brevity.

            ----- AD -----  ----- CE -----
CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR
ar-SA       -1     -1       -1     -1       System.Globalization.HijriCalendar
ar-IQ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-EG       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-DZ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-MA       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-TN       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-OM       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-YE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-SY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-JO       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LB       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-KW       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-AE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-BH       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-QA       1      1        -1     -1       System.Globalization.GregorianCalendar
bg-BG       1      1        -1     -1       System.Globalization.GregorianCalendar
ca-ES       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-TW       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-CN       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-HK       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-SG       1      1        -1     -1       System.Globalization.GregorianCalendar
zh-MO       1      1        -1     -1       System.Globalization.GregorianCalendar
cs-CZ       -1     -1       -1     -1       System.Globalization.GregorianCalendar
da-DK       1      1        -1     -1       System.Globalization.GregorianCalendar

*/
Imports System.Globalization

Public Class SamplesGregorianCalendar

   Public Shared Sub Main()

      ' Creates strings with punctuation and without.
      Dim strADPunc As [String] = "A.D."
      Dim strADNoPunc As [String] = "AD"
      Dim strCEPunc As [String] = "C.E."
      Dim strCENoPunc As [String] = "CE"

      ' Calls DTFI.GetEra for each culture that uses GregorianCalendar as the default calendar.
      Console.WriteLine("            ----- AD -----  ----- CE -----")
      Console.WriteLine("CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR")
      Dim myCI As CultureInfo
      For Each myCI In  CultureInfo.GetCultures(CultureTypes.SpecificCultures)
         Console.Write("{0,-12}", myCI)
         Console.Write("{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra(strADPunc), myCI.DateTimeFormat.GetEra(strADNoPunc))
         Console.Write("{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra(strCEPunc), myCI.DateTimeFormat.GetEra(strCENoPunc))
         Console.Write("{0}", myCI.Calendar)
         Console.WriteLine()
      Next myCI

   End Sub

End Class


'This code produces the following output.  This output has been cropped for brevity.
'
'            ----- AD -----  ----- CE -----
'CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR
'ar-SA       -1     -1       -1     -1       System.Globalization.HijriCalendar
'ar-IQ       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-EG       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-LY       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-DZ       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-MA       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-TN       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-OM       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-YE       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-SY       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-JO       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-LB       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-KW       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-AE       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-BH       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-QA       1      1        -1     -1       System.Globalization.GregorianCalendar
'bg-BG       1      1        -1     -1       System.Globalization.GregorianCalendar
'ca-ES       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-TW       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-CN       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-HK       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-SG       1      1        -1     -1       System.Globalization.GregorianCalendar
'zh-MO       1      1        -1     -1       System.Globalization.GregorianCalendar
'cs-CZ       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'da-DK       1      1        -1     -1       System.Globalization.GregorianCalendar

Комментарии

Григорианский календарь распознает две эпохи: до н.э. или до н.э. и н.э. или н.э. Эта реализация GregorianCalendar класса распознает только текущую эру (A.D. или C.E.).

Примечание

Сведения об использовании GregorianCalendar класса и других классов календарей в платформа .NET Framework см. в разделе Работа с календарями.

Високосный год по григорианскому календарю определяется как год, который равномерно делится на 4, если он не делится на 100. Однако годы, делимые на 400, являются високосными годами. Например, 1900 год был не високосным, а 2000 год. Общий год имеет 365 дней, а високосный год имеет 366 дней.

Григорианский календарь содержит 12 месяцев с 28 по 31 день каждый: январь (31 день), февраль (28 или 29 дней), март (31 день), апрель (30 дней), май (30 дней) 1 дней), июнь (30 дней), июль (31 день), август (31 день), сентябрь (30 дней), октябрь (31 день), ноябрь (30 дней) и декабрь (31 день). Февраль имеет 29 дней в високосные годы и 28 в обычные годы.

Важно!

По умолчанию все DateTime значения и DateTimeOffset выражают даты и время в григорианском календаре.

Григорианский календарь был разработан в качестве замены юлианского календаря (который представлен классом JulianCalendar ) и был впервые введен в небольшом количестве культур 15 октября 1582 года. При работе с историческими датами, предшествующими принятию григорианского календаря в культуре, следует использовать исходный календарь, если он доступен в платформа .NET Framework. Например, Дания изменилась с юлианского календаря на григорианский календарь 19 февраля (по юлианскому календарю) или 1 марта (по григорианскому календарю) 1700 года. В этом случае для дат до принятия григорианского календаря следует использовать юлианский календарь. Однако обратите внимание, что ни одно из языков и региональных параметров не обеспечивает встроенную JulianCalendar поддержку класса. Класс необходимо использовать в JulianCalendar качестве автономного календаря. Дополнительные сведения см. в разделе Работа с календарями.

В следующем примере показано, что 18 февраля 1700 года в юлианском календаре, который является последним днем официального использования юлианского календаря в Дании, на один день раньше, чем 1 марта 1700 года в григорианском календаре.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");

      JulianCalendar jc = new JulianCalendar();
      DateTime lastDate = new DateTime(1700, 2, 18, jc);
      Console.WriteLine("Last date (Gregorian): {0:d}", lastDate);
      Console.WriteLine("Last date (Julian): {0}-{1}-{2}\n", jc.GetDayOfMonth(lastDate),
                        jc.GetMonth(lastDate), jc.GetYear(lastDate));

      DateTime firstDate = lastDate.AddDays(1);
      Console.WriteLine("First date (Gregorian): {0:d}", firstDate);
      Console.WriteLine("First date (Julian): {0}-{1}-{2}",  jc.GetDayOfMonth(firstDate),
                        jc.GetMonth(firstDate), jc.GetYear(firstDate));
   }
}
// The example displays the following output:
//       Last date (Gregorian): 28-02-1700
//       Last date (Julian): 18-2-1700
//
//       First date (Gregorian): 01-03-1700
//       First date (Julian): 19-2-1700
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Thread.CurrentThread.CurrentCulture = New CultureInfo("da-DK")
      
      Dim jc As New JulianCalendar()
      Dim lastDate As New DateTime(1700, 2, 18, jc)
      Console.WriteLine("Last date (Gregorian): {0:d}", lastDate)
      Console.WriteLine("Last date (Julian): {0}-{1}-{2}", jc.GetDayOfMonth(lastDate),
                        jc.GetMonth(lastDate), jc.GetYear(lastDate))
      Console.WriteLine()
      
      Dim firstDate As DateTime = lastDate.AddDays(1)
      Console.WriteLine("First date (Gregorian): {0:d}", firstDate)
      Console.WriteLine("First date (Julian): {0}-{1}-{2}",  jc.GetDayOfMonth(firstDate),
                        jc.GetMonth(firstDate), jc.GetYear(firstDate))
   End Sub
End Module
' The example displays the following output:
'       Last date (Gregorian): 28-02-1700
'       Last date (Julian): 18-2-1700
'       
'       First date (Gregorian): 01-03-1700
'       First date (Julian): 19-2-1700

Каждый из них CultureInfo поддерживает набор календарей. Свойство Calendar возвращает календарь по умолчанию для языка и региональных параметров, а свойство возвращает массив, содержащий все календари, поддерживаемые языком и OptionalCalendars региональными параметрами. Чтобы изменить календарь, используемый CultureInfo, приложение может присвоить свойству Calendar новое Calendarзначение .

GetEra пропускает знаки препинания в сокращенных именах эр, только если GregorianCalendar выбран параметр и DateTimeFormatInfo.Calendar язык и региональные параметры используют "A.D." в качестве имени эры, то есть "A.D." эквивалентно "AD".

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

GregorianCalendar()

Инициализирует новый экземпляр класса GregorianCalendar с помощью значения GregorianCalendarTypes, используемого по умолчанию.

GregorianCalendar(GregorianCalendarTypes)

Инициализирует новый экземпляр класса GregorianCalendar, используя указанное значение GregorianCalendarTypes.

Поля

ADEra

Представляет текущую эру. Это поле является константой.

CurrentEra

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

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

Свойства

AlgorithmType

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

AlgorithmType

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

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

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

DaysInYearBeforeMinSupportedYear

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

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

Возвращает список эр в классе GregorianCalendar.

IsReadOnly

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

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

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

MaxSupportedDateTime

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

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

Возвращает самые ранние дату и время, поддерживаемые типом GregorianCalendar.

MinSupportedDateTime

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

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

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

Методы

AddDays(DateTime, Int32)

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

(Унаследовано от Calendar)
AddHours(DateTime, Int32)

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

(Унаследовано от Calendar)
AddMilliseconds(DateTime, Double)

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

(Унаследовано от Calendar)
AddMinutes(DateTime, Int32)

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

(Унаследовано от Calendar)
AddMonths(DateTime, Int32)

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

AddSeconds(DateTime, Int32)

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

(Унаследовано от Calendar)
AddWeeks(DateTime, Int32)

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

AddWeeks(DateTime, Int32)

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

(Унаследовано от Calendar)
AddYears(DateTime, Int32)

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

Clone()

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

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

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

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

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

GetDayOfWeek(DateTime)

Возвращает день недели из заданной структуры DateTime.

GetDayOfYear(DateTime)

Возвращает день года в заданном параметре DateTime.

GetDaysInMonth(Int32, Int32)

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

(Унаследовано от Calendar)
GetDaysInMonth(Int32, Int32, Int32)

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

GetDaysInYear(Int32)

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

(Унаследовано от Calendar)
GetDaysInYear(Int32, Int32)

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

GetEra(DateTime)

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

GetHashCode()

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

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

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

(Унаследовано от Calendar)
GetLeapMonth(Int32)

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

(Унаследовано от Calendar)
GetLeapMonth(Int32, Int32)

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

GetLeapMonth(Int32, Int32)

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

(Унаследовано от Calendar)
GetMilliseconds(DateTime)

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

(Унаследовано от Calendar)
GetMinute(DateTime)

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

(Унаследовано от Calendar)
GetMonth(DateTime)

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

GetMonthsInYear(Int32)

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

(Унаследовано от Calendar)
GetMonthsInYear(Int32, Int32)

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

GetSecond(DateTime)

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

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

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

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

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

GetWeekOfYear(DateTime, CalendarWeekRule, DayOfWeek)

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

(Унаследовано от Calendar)
GetYear(DateTime)

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

IsLeapDay(Int32, Int32, Int32)

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

(Унаследовано от Calendar)
IsLeapDay(Int32, Int32, Int32, Int32)

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

IsLeapMonth(Int32, Int32)

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

(Унаследовано от Calendar)
IsLeapMonth(Int32, Int32, Int32)

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

IsLeapYear(Int32)

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

(Унаследовано от Calendar)
IsLeapYear(Int32, Int32)

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

MemberwiseClone()

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

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

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

(Унаследовано от Calendar)
ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

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

ToFourDigitYear(Int32)

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

ToString()

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

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

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

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