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


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

Комментарии

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

Замечание

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

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

Григорианский календарь имеет 12 месяцев с 28 до 31 дней каждый: январь (31 день), февраль (28 или 29 дней), март (31 дней), апрель (30 дней), май (30 дней), май (3 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)

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

Поля

Имя Описание
ADEra

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

CurrentEra

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

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

Свойства

Имя Описание
AlgorithmType

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

CalendarType

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

DaysInYearBeforeMinSupportedYear

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

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

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

IsReadOnly

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

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

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

MinSupportedDateTime

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

TwoDigitYearMax

Возвращает или задает последний год 100-летнего диапазона, который может быть представлен 2-цифрным годом.

Методы

Имя Описание
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, Int32)

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

GetDaysInMonth(Int32, Int32)

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

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

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

GetDaysInYear(Int32)

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

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

Возвращает эру в указанной DateTime.

GetHashCode()

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

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

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

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

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

GetLeapMonth(Int32)

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

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

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

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

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

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

Возвращает месяц в указанном DateTime.

GetMonthsInYear(Int32, Int32)

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

GetMonthsInYear(Int32)

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

(Унаследовано от Calendar)
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, Int32)

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

IsLeapDay(Int32, Int32, Int32)

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

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

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

IsLeapMonth(Int32, Int32)

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

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

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

IsLeapYear(Int32)

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

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

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

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

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

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

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

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

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

ToString()

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

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

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

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