UmAlQuraCalendar.AddYears(DateTime, Int32) メソッド

定義

指定した初期日付から指定した年数が経過した後の日付を計算します。

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

パラメーター

time
DateTime

年数を加算する対象の日付。 UmAlQuraCalendar クラスでは、04/30/1900 00.00.00 (グレゴリオ暦) から 11/16/2077 23:59:59 (グレゴリオ暦) までの日付しかサポートしていません。

years
Int32

正または負の、加算する年数。

戻り値

DateTime

years パラメーターで指定した年数を time パラメーターで指定した日付に加算することで得られる日付。

例外

結果として得られる日付が UmAlQuraCalendar クラスでサポートされている範囲外の値です。

years が -10,000 未満であるか、または 10,000 を超えています。

  • または - time が、このカレンダーでサポートされている範囲外です。

次の例では、値を DateTime インスタンス化し、そのコンポーネントの複数の値を Um AL Qura カレンダーに表示します。 次に、Um Al Qura カレンダーに 2 年と 10 か月を日付の値に追加するメソッドとAddMonthsメソッドを呼び出AddYearsします。 最後に、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時刻と同じままです。

たとえば、Zulhijjah には 29 日ありますが、うるう年の場合は 30 日を除きます。 指定した日付が閏年のズリヒジャの 30 日目で、パラメーターの値が 1 の years 場合、結果の日付は次の年のズリジジャの 29 日目になります。

負の値の場合 years 、結果 DateTime は指定した DateTime値より前になります。

戻りDateTime値のプロパティはKind常に等しくなりますDateTimeKind.Unspecified。 次の例に Kind 示すように、メソッドを time 呼び出 DateTime.SpecifyKind すことで、パラメーターのプロパティを保持できます。

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

適用対象