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
Положительное или отрицательное число месяцев для добавления.
Возвращаемое значение
Дата, полученная путем добавления числа месяцев, указанных в параметре months
, к дате, указанной в параметре time
.
Исключения
Результирующая дата находится вне диапазона, поддерживаемого классом UmAlQuraCalendar.
Параметр months
имеет значение меньше –120 000 или больше 120 000.
-или-
time
находится за пределами диапазона, поддерживаемого этим календарем.
Примеры
В следующем примере создается DateTime экземпляр значения и отображаются значения нескольких его компонентов в календаре Умм Аль-Кура. Затем он вызывает AddYears методы и AddMonths , чтобы добавить 2 года и 10 месяцев в календаре Умм Аль-Кура к значению даты. Наконец, он снова отображает значения этих компонентов даты в календаре Умм Аль Кура.
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. Свойство time
параметра можно сохранитьKind, вызвав DateTime.SpecifyKind метод , как показано в следующем примере.
returnTime = DateTime.SpecifyKind(cal.AddMonths(time, months), time.Kind);
returnTime = DateTime.SpecifyKind(cal.AddMonths(time, months), time.Kind)