C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のDateTime.AddMonths()メソッドの使い方を徹底解説

C#のDateTime.AddMonths()メソッドは、現在のDateTimeインスタンスの値に、指定した月数を加算するために使用されます。日付の計算処理において非常に便利なメソッドで、正の値を指定すれば月を加算し、負の値を指定すれば月を減算できます。

構文

AddMonths()メソッドの構文は以下のとおりです。

public DateTime AddMonths (int val);

引数valには加算する月数を指定します。月を減算したい場合は、負の値を設定してください。

ポイント

  • 元のDateTimeオブジェクトは変更されず、計算結果を持つ新しいDateTimeインスタンスが返されます(イミュータブルな設計)。
  • 結果の日付が無効になる場合(例:1月31日に1か月加算)、その月の最終日に自動的に調整されます。
  • 結果が表現可能な範囲(MinValue〜MaxValue)を超える場合は、ArgumentOutOfRangeExceptionがスローされます。

使用例1:月を加算する場合

それでは、DateTime.AddMonths()メソッドを実装した例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      DateTime d1 = new DateTime(2019, 05, 15, 5, 15, 25);
      DateTime d2 = d1.AddMonths(5);
      System.Console.WriteLine("Initial DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
      System.Console.WriteLine("\nNew DateTime (After adding months) = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d2);
   }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Initial DateTime = 15 May 2019, 05:15:25
New DateTime (After adding months) = 15 October 2019, 05:15:25

この例では、2019年5月15日の日時に5か月を加算しているため、結果は「2019年10月15日」となっています。時刻部分(05:15:25)は変化していない点にも注目してください。

使用例2:月を減算する場合

続いて、負の値を指定して月を減算する例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      DateTime d1 = new DateTime(2019, 08, 20, 3, 30, 50);
      DateTime d2 = d1.AddMonths(-2);
      System.Console.WriteLine("Initial DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
      System.Console.WriteLine("\nNew DateTime (After subtracting months) = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d2);
   }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Initial DateTime = 20 August 2019, 03:30:50
New DateTime (After subtracting months) = 20 June 2019, 03:30:50

この例では、2019年8月20日の日時から2か月を減算しているため、結果は「2019年6月20日」になります。

まとめ

DateTime.AddMonths()メソッドを使えば、月単位の日付計算を簡単に行うことができます。引数に正の値を渡せば加算、負の値を渡せば減算となり、元のオブジェクトを変更せずに新しいDateTimeインスタンスとして結果を取得できるのが特徴です。請求サイクルや契約期間の計算など、実務でも頻繁に活用されるメソッドなので、ぜひ使い方をマスターしておきましょう。

  1. C#のDateTime.AddHours()メソッドの使い方を徹底解説

    C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。基本仕様DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。戻り値は加算後の日時を持つ新しいDateTimeです。構文public DateTime AddHours (double hrs);パラメータ hrs には加算する時間数を指定します。負の値を渡すこ

  2. C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法

    C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動