Condividi tramite


UmAlQuraCalendar.AddYears(DateTime, Int32) Metodo

Definizione

Calcola una data che ricorre a una distanza pari al numero di anni indicato a partire da una data iniziale specificata.

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

Parametri

time
DateTime

Data alla quale aggiungere gli anni. La classe UmAlQuraCalendar supporta solo le date dal 30/04/1900 00.00.00 (data gregoriana) al 16/11/2077 23.59.59 (data gregoriana).

years
Int32

Numero positivo o negativo di anni da aggiungere.

Restituisce

Data risultante dall'aggiunta del numero di anni specificato dal parametro years alla data specificata dal parametro time.

Eccezioni

La data risultante non è compresa nell'intervallo supportato dalla classe UmAlQuraCalendar.

years è minore di -10.000 o maggiore di 10.000.

-oppure-

time non è compreso nell'intervallo supportato dal calendario.

Esempio

Nell'esempio seguente viene creato un'istanza di un DateTime valore e vengono visualizzati i valori di diversi dei relativi componenti nel calendario Qura di Um AL. Chiama quindi i AddYears metodi e AddMonths per aggiungere 2 anni e 10 mesi nel calendario Um Al Qura al valore di data. Infine, visualizza nuovamente i valori di questi componenti di data nel calendario 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

Commenti

La parte del giorno risultante DateTime è interessata se il giorno risultante non è un giorno valido nel mese risultante dell'anno risultante. Viene modificato nell'ultimo giorno valido nel mese risultante dell'anno risultante. La parte mensile del risultato DateTime rimane uguale a quella specificata DateTime. Questa implementazione supporta solo l'era corrente. Pertanto, viene generata un'eccezione se l'anno risultante non è compreso nell'era dell'oggetto specificato DateTime. La parte del giorno risultante DateTime rimane uguale a quella specificata DateTime.

Ad esempio, Zulhijjah ha 29 giorni, ad eccezione di anni di salto quando ha 30 giorni. Se la data specificata è il 30° giorno di Zulhijjah in un anno bisestile e il valore del parametro è 1, la data risultante è il 29° giorno di years Zulhijjah nell'anno successivo.

Se years è negativo, il risultato DateTime è precedente a quello specificato DateTime.

La Kind proprietà del valore restituito DateTime è DateTimeKind.Unspecifiedsempre uguale a . È possibile mantenere la Kind proprietà del time parametro chiamando il metodo, come illustrato nell'esempio DateTime.SpecifyKind seguente.

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

Si applica a