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

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

C#のDateTimeOffset.AddDays()メソッドは、現在のインスタンスの日付・時刻の値に、指定した日数(整数および小数)を加算した結果として得られる、新しいDateTimeOffsetオブジェクトを返します。元のインスタンス自体は変更されず、計算結果が新しいオブジェクトとして返される点が特徴です。

構文

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

public DateTimeOffset AddDays (double val);

引数valには、加算する日数をdouble型で指定します。日付を遡りたい(減算したい)場合は、負の値を指定してください。

使用例1:日数を加算する

まずは、AddDays()メソッドを使って20日を加算する基本的な例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 10, 10, 9, 15, 0, new TimeSpan(-5, 0, 0));
        DateTimeOffset res = dateTimeOffset.AddDays(20);
        Console.WriteLine("DateTimeOffset = {0}", res);
    }
}

出力結果

上記のコードを実行すると、以下の出力が得られます。

DateTimeOffset = 10/30/2019 9:15:00 AM -05:00

2019年10月10日に20日が加算され、10月30日の同じ時刻(9:15:00、オフセット-05:00)になっていることが確認できます。

使用例2:負の値で日数を減算する

次に、負の値を指定して日付を過去に移動させる例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 10, 10, 9, 15, 0, new TimeSpan(-5, 0, 0));
        DateTimeOffset res = dateTimeOffset.AddDays(-5);
        Console.WriteLine("DateTimeOffset (after subtracting days) = {0}", res);
    }
}

出力結果

実行すると、以下のように5日前の日付が出力されます。

DateTimeOffset (after subtracting days) = 10/5/2019 9:15:00 AM -05:00

注意点

  • 小数値も指定可能です。たとえばAddDays(1.5)とすると、1日半後の時刻が返されます。
  • 計算結果がDateTimeOffset.MinValueDateTimeOffset.MaxValueの範囲外になる場合、ArgumentOutOfRangeExceptionがスローされます。
  • このメソッドは元のオブジェクトを変更しないため、戻り値を受け取って使う必要があります。

まとめ

DateTimeOffset.AddDays()メソッドを使うことで、タイムゾーン情報(UTCオフセット)を保持したまま、日数の加算・減算を簡単に行えます。DateTime型との違いはオフセット情報を持てる点であり、世界中の時刻を扱うアプリケーションでは特に有用なメソッドです。

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

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

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

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