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 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
Комментарии
Календарь делит время на единицы, такие как недели, месяцы и годы. Число, длина и начало деления зависят от каждого календаря.
Note
Сведения об использовании классов календаря в .NET см. в разделе Working with Calendars.
Любой момент времени можно представить как набор числовых значений с помощью определенного календаря. Например, вершинное равноденствие произошло в (1999, 3, 20, 8, 46, 0, 0, 0,0) в григорианском календаре, то есть 20 марта 1999 Г. В 8:46:00:00.0. Реализация Calendar может сопоставить любую дату в диапазоне определенного календаря с аналогичным набором числовых значений и DateTime сопоставить такие наборы числовых значений с текстовым представлением, используя сведения из Calendar и DateTimeFormatInfo. Текстовое представление может быть чувствительным к языку и региональным параметрам, например "8:46 марта 20-го 1999 ГОДА AD" для en-US языка и региональных параметров, например "1999-03-20T08:46:00" в формате ISO 8601.
Реализация Calendar может определять одну или несколько эпох. Класс Calendar определяет эры как перечисляемые целые числа, где текущая эра (CurrentEra) имеет значение 0.
Important
Эры в японских календарях основаны на царствии императора и поэтому, как ожидается, изменятся. Например, 1 мая 2019 г. отмечено начало эпохи Reiwa в 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 |
Возвращает или задает последний год 100-летнего диапазона, который может быть представлен 2-цифрным годом. |
Методы
| Имя | Описание |
|---|---|
| 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, Int32) |
При переопределении в производном классе возвращает количество дней в указанном месяце, году и эре. |
| GetDaysInMonth(Int32, Int32) |
Возвращает количество дней в указанном месяце и году текущей эпохи. |
| GetDaysInYear(Int32, Int32) |
При переопределении в производном классе возвращает количество дней в указанном году и эре. |
| GetDaysInYear(Int32) |
Возвращает количество дней в указанном году текущей эпохи. |
| GetEra(DateTime) |
При переопределении в производном классе возвращает эру указанного DateTime. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetHour(DateTime) |
Возвращает значение часов в указанном DateTime. |
| GetLeapMonth(Int32, Int32) |
Вычисляет високосный месяц за указанный год и эру. |
| GetLeapMonth(Int32) |
Вычисляет високосный месяц за указанный год. |
| GetMilliseconds(DateTime) |
Возвращает значение миллисекунда в указанном DateTime. |
| GetMinute(DateTime) |
Возвращает значение минут в указанном DateTime. |
| GetMonth(DateTime) |
При переопределении в производном классе возвращает месяц в указанном DateTime. |
| GetMonthsInYear(Int32, Int32) |
При переопределении в производном классе возвращает количество месяцев в указанном году в указанной эре. |
| GetMonthsInYear(Int32) |
Возвращает количество месяцев в указанном году в текущей эре. |
| GetSecond(DateTime) |
Возвращает значение секунд в указанном DateTime. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| GetWeekOfYear(DateTime, CalendarWeekRule, DayOfWeek) |
Возвращает неделю года, включающую дату в указанное DateTime значение. |
| GetYear(DateTime) |
При переопределении в производном классе возвращает год в указанном DateTime. |
| IsLeapDay(Int32, Int32, Int32, Int32) |
При переопределении в производном классе определяет, является ли указанная дата в указанной эре високосным днем. |
| IsLeapDay(Int32, Int32, Int32) |
Определяет, является ли указанная дата в текущей эре високосным днем. |
| IsLeapMonth(Int32, Int32, Int32) |
При переопределении в производном классе определяет, является ли указанный месяц указанным годом в указанной эре високосным месяцем. |
| IsLeapMonth(Int32, Int32) |
Определяет, является ли указанный месяц в указанном году в текущей эре високосным месяцем. |
| IsLeapYear(Int32, Int32) |
При переопределении в производном классе определяет, является ли указанный год в указанной эре високосным годом. |
| IsLeapYear(Int32) |
Определяет, является ли указанный год в текущей эре високосным годом. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ReadOnly(Calendar) |
Возвращает версию только для чтения указанного Calendar объекта. |
| ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32) |
При переопределении в производном классе возвращает DateTime значение указанной даты и времени в указанной эре. |
| ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) |
Возвращает значение указанной DateTime даты и времени в текущей эре. |
| ToFourDigitYear(Int32) |
Преобразует указанный год в четырехзначный год с помощью TwoDigitYearMax свойства для определения соответствующего века. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Применяется к
См. также раздел
- DateTime
- DateTimeFormatInfo
- ChineseLunisolarCalendar
- EastAsianLunisolarCalendar
- GregorianCalendar
- HebrewCalendar
- HijriCalendar
- JapaneseCalendar
- JapaneseLunisolarCalendar
- JulianCalendar
- KoreanCalendar
- KoreanLunisolarCalendar
- PersianCalendar
- TaiwanCalendar
- TaiwanLunisolarCalendar
- ThaiBuddhistCalendar
- UmAlQuraCalendar
- Работа с календарями