UmAlQuraCalendar.AddMonths(DateTime, Int32) Metodo

Definizione

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

public override DateTime AddMonths (DateTime time, int months);

Parametri

time
DateTime

Data a cui aggiungere i mesi. 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).

months
Int32

Numero positivo o negativo di mesi da aggiungere.

Restituisce

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

Eccezioni

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

months è minore di -120.000 o maggiore di 120.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 Um Al Qura. 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

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 dell'anno risultante DateTime è interessata se il mese risultante è esterno all'anno dell'oggetto specificato 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, se il mese specificato è Zulkadah, che ha 30 giorni, il giorno specificato è il 30° giorno del mese e il valore del parametro è 3, l'anno risultante è uno più dell'anno months specificato, il mese risultante è Safar e il giorno risultante è il 29° giorno, ovvero l'ultimo giorno di Safar.

Se il valore del months parametro è 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.AddMonths(time, months), time.Kind);

Si applica a