GregorianCalendar.AddMonths(DateTime, Int32) Método

Definição

Devolve um DateTime que é o número de meses especificado a partir do especificado DateTime.

public:
 override DateTime AddMonths(DateTime time, int months);
public override DateTime AddMonths(DateTime time, int months);
override this.AddMonths : DateTime * int -> DateTime
Public Overrides Function AddMonths (time As DateTime, months As Integer) As DateTime

Parâmetros

time
DateTime

A que DateTime acrescentar meses.

months
Int32

O número de meses a acrescentar.

Devoluções

O DateTime resultado resulta da soma do número especificado de meses ao especificado DateTime.

Exceções

O resultado DateTime está fora do alcance suportado.

months é inferior a -120000.

-ou-

months é superior a 120000.

Exemplos

O seguinte exemplo de código mostra os valores de vários componentes de a DateTime em termos do calendário gregoriano.

using System;
using System.Globalization;

public class SamplesGregorianCalendar  {

   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 GregorianCalendar.
      GregorianCalendar myCal = new GregorianCalendar();

      // Displays the values of the DateTime.
      Console.WriteLine( "April 3, 2002 of the Gregorian 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:
   Era:        1
   Year:       2002
   Month:      4
   DayOfYear:  93
   DayOfMonth: 3
   DayOfWeek:  Wednesday

After adding two years and ten months:
   Era:        1
   Year:       2005
   Month:      2
   DayOfYear:  34
   DayOfMonth: 3
   DayOfWeek:  Thursday

*/
Imports System.Globalization


Public Class SamplesGregorianCalendar   

   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 GregorianCalendar.
      Dim myCal As New GregorianCalendar()

      ' Displays the values of the DateTime.
      Console.WriteLine("April 3, 2002 of the Gregorian 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:
'   Era:        1
'   Year:       2002
'   Month:      4
'   DayOfYear:  93
'   DayOfMonth: 3
'   DayOfWeek:  Wednesday
'
'After adding two years and ten months:
'   Era:        1
'   Year:       2005
'   Month:      2
'   DayOfYear:  34
'   DayOfMonth: 3
'   DayOfWeek:  Thursday

Observações

A parte do dia resultante DateTime é afetada se o dia resultante não for válido no mês resultante do ano resultante. É alterado para o último dia válido do mês resultante do ano seguinte. A parte do ano do resultado DateTime é afetada se o mês resultante estiver fora do ano especificado DateTime. Esta implementação suporta apenas a era atual. Portanto, ArgumentException é lançado se o ano resultante estiver fora da era do especificado DateTime. A parte do dia do resultado DateTime mantém-se igual à especificada DateTime.

Por exemplo, se o mês especificado for outubro, que tem 31 dias, o dia especificado for o dia 31 desse mês, e o valor do months parâmetro for 6, o ano resultante for um a mais do que o ano especificado, o mês resultante for abril e o dia resultante for o dia 30, que é o último dia de abril.

Se o valor do months parâmetro for negativo, o resultado DateTime é anterior ao especificado DateTime.

A Kind propriedade do valor devolvido DateTime é DateTimeKind.Unspecifiedsempre igual a . Pode preservar a Kind propriedade do time parâmetro chamando o DateTime.SpecifyKind método, como mostra o exemplo seguinte.

returnTime = DateTime.SpecifyKind(cal.AddMonths(time, months), time.Kind);
returnTime = DateTime.SpecifyKind(cal.AddMonths(time, months), time.Kind)

Aplica-se a

Ver também