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
- Наследование
- Атрибуты
Примеры
В следующем примере кода показано, что 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 как заданное число недель из заданного объекта |
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) |