UmAlQuraCalendar.AddMonths(DateTime, Int32) Метод

Определение

Рассчитывает дату через определенное количество месяцев от указанной исходной даты.

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

Параметры

time
DateTime

Дата, к которой требуется добавить месяцы. Класс UmAlQuraCalendar поддерживает только даты с 30.04.1900 00.00.00 (по григорианскому календарю) по 16.11.2077 23:59:59 (по григорианскому календарю).

months
Int32

Положительное или отрицательное число месяцев для добавления.

Возвращаемое значение

DateTime

Дата, полученная путем добавления числа месяцев, указанных в параметре months, к дате, указанной в параметре time.

Исключения

Результирующая дата находится вне диапазона, поддерживаемого классом UmAlQuraCalendar.

Параметр months имеет значение меньше –120 000 или больше 120 000.

-или- time находится за пределами диапазона, поддерживаемого этим календарем.

Примеры

В следующем примере создается экземпляр DateTime значения и отображаются значения нескольких его компонентов в календаре Um Al Qura. Далее он вызывает AddYears методы и AddMonths методы для добавления 2 лет и 10 месяцев в календарь Um Al Qura к значению даты. Наконец, он снова отображает значения этих компонентов даты в календаре 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

Комментарии

Дневная часть результирующего DateTime значения затрагивается, если итоговый день не является допустимым днем в результирующем месяце результирующего года. Оно изменяется на последний допустимый день в результирующем месяце результирующего года. Часть года результирующего DateTime элемента влияет, если итоговый месяц выходит за пределы указанного DateTimeгода. Эта реализация поддерживает только текущую эру. Таким образом, исключение возникает, если результирующий год выходит за рамки указанной DateTimeэры. Временная часть результирующего DateTime объекта остается той же, что и указанная DateTime.

Например, если указанный месяц — Zulkadah, который имеет 30 дней, указанный день — 30-й день этого месяца, а значение months параметра — 3, результирующий год больше указанного года, итоговый месяц — Сафар, а итоговый день — 29-й день, который является последним днем в Сафаре.

Если значение months параметра отрицательное, результат DateTime будет выше указанного DateTime.

Свойство Kind возвращаемого DateTime значения всегда равно DateTimeKind.Unspecified. Свойство параметра можно сохранить Kind time , вызвав DateTime.SpecifyKind метод, как показано в следующем примере.

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

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