HebrewCalendar.AddYears(DateTime, Int32) Метод

Определение

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

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

Параметры

time
DateTime

Объект DateTime , в который необходимо добавить years.

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)

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

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