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

定義

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

C#
public override DateTime AddYears (DateTime time, int years);

パラメーター

time
DateTime

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

years
Int32

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

戻り値

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

例外

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

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

- または -

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

次の例では、値を DateTime インスタンス化し、そのコンポーネントの複数の値を Um AL Qura カレンダーに表示します。 次に、 メソッドと AddMonths メソッドをAddYears呼び出して、Um Al Qura カレンダーに 2 年 10 か月を日付値に追加します。 最後に、Um Al Qura カレンダーにこれらの日付コンポーネントの値が再び表示されます。

C#
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

注釈

結果の日が、結果の年の結果 DateTime の月の有効な日でない場合、結果の日の部分が影響を受ける。 結果の年の結果の月の最後の有効な日に変更されます。 結果 DateTime の月部分は、指定した DateTimeと同じままです。 この実装では、現在の時代 (年号) のみがサポートされます。 したがって、結果の年が指定された の時代 (年号) の範囲外の場合、例外がスローされます DateTime。 結果 DateTime のの時刻部分は、指定した DateTimeと同じままです。

たとえば、Zulhijjah の日数は 29 日ですが、うるう年の間は 30 日です。 指定した日付が閏年の Zulhijjah の 30 日で、 パラメーターの値が 1 の years 場合、結果の日付は次の年の Zulhijjah の 29 日目になります。

が負の場合 years 、結果 DateTime は指定された DateTimeよりも前になります。

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

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

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0