Sdílet prostřednictvím


UmAlQuraCalendar.AddYears(DateTime, Int32) Metoda

Definice

Vypočítá datum, které je zadaný počet roků od zadaného počátečního data.

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

Parametry

time
DateTime

Datum, ke kterému se mají přidat roky. Třída UmAlQuraCalendar podporuje pouze data od 04/30/1900 00.00.00 (gregoriánské datum) do 16.11.2077 23:59:59 (gregoriánské datum).

years
Int32

Kladný nebo záporný počet roků, které se mají sečíst.

Návraty

Datum vynesené přidáním počtu roků určených parametrem years k datu určenému parametrem time .

Výjimky

Výsledné datum je mimo rozsah podporovaný UmAlQuraCalendar třídou.

years je menší než -10 000 nebo větší než 10 000.

-nebo-

time je mimo rozsah podporovaný tímto kalendářem.

Příklady

Následující příklad vytvoří DateTime instanci hodnoty a zobrazí hodnoty několika jejích součástí v kalendáři Um AL Qura. Dále volá AddYears metody a AddMonths pro přidání 2 let a 10 měsíců v kalendáři Um Al Qura k hodnotě data. Nakonec znovu zobrazí hodnoty těchto komponent kalendářních dat v kalendáři Um Al Qura.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      DateTime date1 = new DateTime(2011, 4, 3, new GregorianCalendar());
      Calendar cal = new UmAlQuraCalendar();

      Console.WriteLine("{0:MMMM d, yyyy} in the Gregorian calendar is equivalent to:", date1);
      DisplayCalendarInfo(cal, date1);

      // Add 2 years and 10 months by calling UmAlQuraCalendar methods.
      date1 = cal.AddYears(date1, 2);
      date1 = cal.AddMonths(date1, 10);

      Console.WriteLine("After adding 2 years and 10 months in the {0} calendar,",
                        GetCalendarName(cal));
      Console.WriteLine("{0:MMMM d, yyyy} in the Gregorian calendar is equivalent to:", date1);
      DisplayCalendarInfo(cal, date1);
   }

   private static void DisplayCalendarInfo(Calendar cal, DateTime date1)
   {
      Console.WriteLine("   Calendar:   {0}", GetCalendarName(cal));
      Console.WriteLine("   Era:        {0}", cal.GetEra(date1));
      Console.WriteLine("   Year:       {0}", cal.GetYear(date1));
      Console.WriteLine("   Month:      {0}", cal.GetMonth(date1));
      Console.WriteLine("   DayOfYear:  {0}", cal.GetDayOfYear(date1));
      Console.WriteLine("   DayOfMonth: {0}", cal.GetDayOfMonth(date1));
      Console.WriteLine("   DayOfWeek:  {0}\n", cal.GetDayOfWeek(date1));
   }

   private static string GetCalendarName(Calendar cal)
   {
      return cal.ToString().Replace("System.Globalization.", "").
             Replace("Calendar", "");
   }
}
// The example displays the following output:
//    April 3, 2011 in the Gregorian calendar is equivalent to:
//       Calendar:   UmAlQura
//       Era:        1
//       Year:       1432
//       Month:      4
//       DayOfYear:  118
//       DayOfMonth: 29
//       DayOfWeek:  Sunday
//
//    After adding 2 years and 10 months in the UmAlQura calendar,
//    January 1, 2014 in the Gregorian calendar is equivalent to:
//       Calendar:   UmAlQura
//       Era:        1
//       Year:       1435
//       Month:      2
//       DayOfYear:  59
//       DayOfMonth: 29
//       DayOfWeek:  Wednesday
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim date1 As Date = New Date(2011, 4, 3, New GregorianCalendar())
      Dim cal As New UmAlQuraCalendar()
      
      Console.WriteLine("{0:MMMM d, yyyy} in the Gregorian calendar is equivalent to:", date1)
      DisplayCalendarInfo(cal, date1)
            
      ' Add 2 years and 10 months by calling UmAlQuraCalendar methods.
      date1 = cal.AddYears(date1, 2)
      date1 = cal.AddMonths(date1, 10)       

      Console.WriteLine("After adding 2 years and 10 months in the {0} calendar,", 
                        GetCalendarName(cal))
      Console.WriteLine("{0:MMMM d, yyyy} in the Gregorian calendar is equivalent to:", date1)
      DisplayCalendarInfo(cal, date1)
   End Sub
   
   Private Sub DisplayCalendarInfo(cal As Calendar, date1 As Date)
      Console.WriteLine("   Calendar:   {0}", GetCalendarName(cal))    
      Console.WriteLine("   Era:        {0}", cal.GetEra(date1))
      Console.WriteLine("   Year:       {0}", cal.GetYear(date1))
      Console.WriteLine("   Month:      {0}", cal.GetMonth(date1))
      Console.WriteLine("   DayOfYear:  {0}", cal.GetDayOfYear(date1))
      Console.WriteLine("   DayOfMonth: {0}", cal.GetDayOfMonth(date1))
      Console.WriteLine("   DayOfWeek:  {0}", cal.GetDayOfWeek(date1))
      Console.WriteLine()
   End Sub
   
   Private Function GetCalendarName(cal As Calendar) As String
      Return cal.ToString().Replace("System.Globalization.", "").
             Replace("Calendar", "")   
   End Function
End Module
' The example displays the following output:
'    April 3, 2011 in the Gregorian calendar is equivalent to:
'       Calendar:   UmAlQura
'       Era:        1
'       Year:       1432
'       Month:      4
'       DayOfYear:  118
'       DayOfMonth: 29
'       DayOfWeek:  Sunday
'    
'    After adding 2 years and 10 months in the UmAlQura calendar,
'    January 1, 2014 in the Gregorian calendar is equivalent to:
'       Calendar:   UmAlQura
'       Era:        1
'       Year:       1435
'       Month:      2
'       DayOfYear:  59
'       DayOfMonth: 29
'       DayOfWeek:  Wednesday

Poznámky

Denní část výsledného DateTime roku je ovlivněna, pokud výsledný den není platným dnem ve výsledném měsíci výsledného roku. Změní se na poslední platný den ve výsledném měsíci výsledného roku. Měsíční část výsledného výsledku DateTime zůstane stejná jako zadaná DateTimečást . Tato implementace podporuje pouze aktuální éru. Proto je vyvolán výjimka, pokud je výsledný rok mimo éru zadaného DateTimeobjektu . Denní doba výsledné DateTime části zůstává stejná jako zadaná DateTimečást .

Například Zulhijjah má 29 dnů, s výjimkou přestupných let, kdy má 30 dnů. Pokud je zadané datum 30. den Zulhijjah v přestupném roce a hodnota years parametru je 1, výsledné datum je 29. den Zulhijjah v následujícím roce.

Pokud years je negativní, výsledek DateTime je starší než zadaný DateTimeparametr .

Vlastnost Kind vrácené DateTime hodnoty se vždy rovná DateTimeKind.Unspecified. Vlastnost parametru Kindtime můžete zachovat voláním DateTime.SpecifyKind metody, jak ukazuje následující příklad.

returnTime = DateTime.SpecifyKind(cal.AddYears(time, years), time.Kind);
returnTime = DateTime.SpecifyKind(cal.AddYears(time, years), time.Kind)

Platí pro