HebrewCalendar.AddYears(DateTime, Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
public:
override DateTime AddYears(DateTime time, int years);
public override DateTime AddYears(DateTime time, int years);
override this.AddYears : DateTime * int -> DateTime
Public Overrides Function AddYears (time As DateTime, years As Integer) As DateTime
Параметры
- years
- Int32
Количество добавляемых лет.
Возвращаемое значение
Результатом DateTime добавления указанного числа лет в указанный DateTimeобъект.
Исключения
DateTime Результат находится за пределами поддерживаемого диапазона.
Примеры
В следующем примере кода отображаются значения нескольких компонентов еврейского DateTime календаря.
using System;
using System.Globalization;
public class SamplesHebrewCalendar {
public static void Main() {
// Sets a DateTime to April 3, 2002 of the Gregorian calendar.
DateTime myDT = new DateTime( 2002, 4, 3, new GregorianCalendar() );
// Creates an instance of the HebrewCalendar.
HebrewCalendar myCal = new HebrewCalendar();
// Displays the values of the DateTime.
Console.WriteLine( "April 3, 2002 of the Gregorian calendar equals the following in the Hebrew calendar:" );
DisplayValues( myCal, myDT );
// Adds two years and ten months.
myDT = myCal.AddYears( myDT, 2 );
myDT = myCal.AddMonths( myDT, 10 );
// Displays the values of the DateTime.
Console.WriteLine( "After adding two years and ten months:" );
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();
}
}
/*
This code produces the following output.
April 3, 2002 of the Gregorian calendar equals the following in the Hebrew calendar:
Era: 1
Year: 5762
Month: 7
DayOfYear: 198
DayOfMonth: 21
DayOfWeek: Wednesday
After adding two years and ten months:
Era: 1
Year: 5765
Month: 5
DayOfYear: 138
DayOfMonth: 21
DayOfWeek: Monday
*/
Imports System.Globalization
Public Class SamplesHebrewCalendar
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())
' Creates an instance of the HebrewCalendar.
Dim myCal As New HebrewCalendar()
' Displays the values of the DateTime.
Console.WriteLine("April 3, 2002 of the Gregorian calendar equals the following in the Hebrew calendar:")
DisplayValues(myCal, myDT)
' Adds two years and ten months.
myDT = myCal.AddYears(myDT, 2)
myDT = myCal.AddMonths(myDT, 10)
' Displays the values of the DateTime.
Console.WriteLine("After adding two years and ten months:")
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()
End Sub
End Class
'This code produces the following output.
'
'April 3, 2002 of the Gregorian calendar equals the following in the Hebrew calendar:
' Era: 1
' Year: 5762
' Month: 7
' DayOfYear: 198
' DayOfMonth: 21
' DayOfWeek: Wednesday
'
'After adding two years and ten months:
' Era: 1
' Year: 5765
' Month: 5
' DayOfYear: 138
' DayOfMonth: 21
' DayOfWeek: Monday
Комментарии
Эта реализация HebrewCalendar класса признает только еврейские годы 5343–5999 (1583–2239 в григорианском календаре).
Дневная часть DateTime результирующего значения затрагивается, если полученный день не является допустимым в результирующем месяце результирующего года. Оно изменяется на последний действительный день в результирующем месяце итогового года. Например, Чешван может иметь 29 или 30 дней в зависимости от размещения еврейских праздников. Предположим, что Чешван имеет 30 дней в текущем году и 29 в следующем году. Если указанная дата — 30-й день Чешвана в текущем году, а значение years равно 1, результирующая дата будет 29-й день Чешвана в следующем году.
Часть результирующего DateTime значения влияет, если результирующий месяц не является допустимым месяцем в результирующем году. Оно изменяется на последний допустимый месяц в результирующем году. Например, если месяц в time параметре равен 13-му месяцу високосного года, а значение years равно 1, то в результате DateTime будет 12-й месяц следующего года, который является непрыжным годом. Обратите внимание, что даже если часть месяца не изменяется, она может по-прежнему ссылаться на другой месяц. Например, Адар Бейт является 7-м месяцем в високосные годы, но Nissan является 7-м месяцем в общих годах.
Эта реализация поддерживает только текущую эпоху. Поэтому возникает, ArgumentException если результирующий год выходит за пределы эпохи указанного DateTime.
Временная часть результирующего DateTime объекта остается той же, что и указанная DateTime.
Если years это отрицательно, результат DateTime выше указанного DateTime.
Свойство Kind возвращаемого DateTime значения всегда равно DateTimeKind.Unspecified. Свойство параметра можно сохранить Kindtime , вызвав DateTime.SpecifyKind метод, как показано в следующем примере.
returnTime = DateTime.SpecifyKind(cal.AddYears(time, years), time.Kind);
returnTime = DateTime.SpecifyKind(cal.AddYears(time, years), time.Kind)