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

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

C#のDateTimeOffset.AddMonths()メソッドは、現在のDateTimeOffsetインスタンスの日付に指定した月数を加算するためのメソッドです。負の値を指定すれば、月を減算することも可能です。

基本仕様

このメソッドは、元のDateTimeOffsetオブジェクトの値を変更せずに、新しいDateTimeOffsetオブジェクトを返します(イミutableな設計)。時刻部分やUTCオフセットはそのまま維持されます。

構文

以下がAddMonths()メソッドの構文です。

public DateTimeOffset AddMonths (int val);

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

サンプルコード1:月を加算する

まずは、3か月を加算する基本的な例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 08, 10, 4, 20, 10, new TimeSpan(-5, 0, 0));
        Console.WriteLine("DateTimeOffset (before adding months) = {0}", dateTimeOffset);
        DateTimeOffset res = dateTimeOffset.AddMonths(3);
        Console.WriteLine("DateTimeOffset (after adding months) = {0}", res);
    }
}

実行結果

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

DateTimeOffset (before adding months) = 8/10/2019 4:20:10 AM -05:00
DateTimeOffset (after adding months) = 11/10/2019 4:20:10 AM -05:00

2019年8月10日に3か月を加算した結果、2019年11月10日になっていることが確認できます。時刻とオフセット(-05:00)は変化していません。

サンプルコード2:月を減算する

次に、負の値を渡して月を減算する例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 08, 10, 4, 20, 10, new TimeSpan(-5, 0, 0));
        Console.WriteLine("DateTimeOffset (before subtracting months) = {0}", dateTimeOffset);
        DateTimeOffset res = dateTimeOffset.AddMonths(-5);
        Console.WriteLine("DateTimeOffset (after subtracting months) = {0}", res);
    }
}

実行結果

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

DateTimeOffset (before subtracting months) = 8/10/2019 4:20:10 AM -05:00
DateTimeOffset (after subtracting months) = 3/10/2019 4:20:10 AM -05:00

2019年8月10日から5か月を減算した結果、2019年3月10日となっています。

注意点

  • AddMonths()は元のインスタンスを変更しないため、必ず戻り値を受け取って使用します。
  • 月末の日付に対して加算・減算を行った場合、結果の日が存在しないときは自動的に調整されます(例:1月31日に1か月加算すると2月28日または29日になる)。
  • 引数に範囲外の値を指定した場合、ArgumentOutOfRangeExceptionがスローされることがあります。
  1. C#のDateTimeOffset.Compare()メソッドの使い方をわかりやすく解説

    C#のDateTimeOffset.Compare()メソッドは、2つのDateTimeOffsetオブジェクトを比較し、最初の日時が2番目の日時よりも「前」なのか、「同じ」なのか、それとも「後」なのかを判定するための静的メソッドです。このメソッドは整数値(int型)を返し、その戻り値によって比較結果が以下のように表されます。0未満 − val1がval2より早い日時である場合0 − val1とval2が同一の日時である場合0より大きい − val1がval2より遅い日時である場合構文DateTimeOffset.Compare()メソッドの構文は以下の通りです。public static i

  2. 【C#入門】DateTimeOffset.AddYears()メソッドの使い方を徹底解説

    C#のDateTimeOffset.AddYears()メソッドは、現在のDateTimeOffsetインスタンスが表す日時に、指定した年数を加算した新しいDateTimeOffset値を返すメソッドです。元のインスタンスの値は変更されず、計算結果が新しいオブジェクトとして返される点に注意してください。構文AddYears()メソッドの構文は以下のとおりです。public DateTimeOffset AddYears (int val);引数valには、加算する年数を整数で指定します。負の値を指定すると、年数を減算(過去にさかのぼる)ことができます。主な特徴戻り値は新しいDateTimeOf