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 namespace System;
using namespace System::Globalization;
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();
}
int main()
{
// Sets a DateTime to April 3, 2002 of the Gregorian calendar.
DateTime myDT = DateTime(2002,4,3,gcnew 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 );
}
/*
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
*/
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
Комментарии
В календаре время делится на единицы, такие как недели, месяцы и годы. Количество, длина и начало деления зависят от календаря.
Примечание
Сведения об использовании классов календарей в .NET см. в разделе Работа с календарями.
Любой момент времени можно представить в виде набора числовых значений с помощью определенного календаря. Например, весеннее равноденствие произошло в григорианском календаре (1999, 3, 20, 8, 46, 0, 0,0) по григорианскому календарю, то есть 20 марта 1999 г. н.э. в 8:46:00:0.0. Реализация Calendar может сопоставить любую дату в диапазоне определенного календаря с аналогичным набором числовых значений, а DateTime также сопоставить такие наборы числовых значений с текстовым представлением, используя сведения из Calendar и DateTimeFormatInfo. Текстовое представление может быть с учетом языка и региональных параметров, например "8:46 AM 20 марта 1999 г. AD" для языка и региональных параметров в сша или без учета языка, например "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) |
Применяется к
См. также раздел
- DateTime
- DateTimeFormatInfo
- ChineseLunisolarCalendar
- EastAsianLunisolarCalendar
- GregorianCalendar
- HebrewCalendar
- HijriCalendar
- JapaneseCalendar
- JapaneseLunisolarCalendar
- JulianCalendar
- KoreanCalendar
- KoreanLunisolarCalendar
- PersianCalendar
- TaiwanCalendar
- TaiwanLunisolarCalendar
- ThaiBuddhistCalendar
- UmAlQuraCalendar
- Работа с календарями
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по