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

C#のDateTimeOffset.Add()メソッドの使い方をわかりやすく解説

C#のDateTimeOffset.Add()メソッドは、現在のインスタンスの値に指定した時間間隔(TimeSpan)を加算し、その結果を保持する新しいDateTimeOffsetオブジェクトを返すメソッドです。元のオブジェクト自体は変更されないため、日付や時刻の計算を安全に行うことができます。

構文

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

public DateTimeOffset Add(TimeSpan t);

パラメータ t には、加算したい時間間隔を表すTimeSpanオブジェクトを指定します。

戻り値と例外

このメソッドは、指定した時間間隔を加算した結果を持つ新しいDateTimeOffsetオブジェクトを返します。なお、計算結果が DateTimeOffset.MinValue より小さくなる、または DateTimeOffset.MaxValue を超える場合は、ArgumentOutOfRangeException がスローされる点に注意してください。

使用例1:具体的な日時に時間を加算する

まずは、DateTimeOffset.Add()メソッドを使って特定の日時に20時間を加算する例を見てみましょう。

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

出力

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

DateTimeOffset = 10/11/2019 5:45:20 AM -10:00

この例では、2019年10月10日の午前9時45分20秒(UTCオフセット-10:00)に対して20時間が加算され、翌日の午前5時45分20秒という結果が得られています。

使用例2:DateTimeOffset.MinValueに時間を加算する

続いて、DateTimeOffset型の最小値である DateTimeOffset.MinValue に対してAdd()メソッドを使用する例を紹介します。

using System;
public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = DateTimeOffset.MinValue;
        TimeSpan ts = new TimeSpan(20, 0, 0);
        DateTimeOffset res = dateTimeOffset.Add(ts);
        Console.WriteLine("DateTimeOffset = {0}", res);
    }
}

出力

実行結果は以下のとおりです。

DateTimeOffset = 1/1/0001 8:00:00 PM +00:00

西暦1年1月1日の午前0時(MinValue)に20時間が加算され、同日の午後8時が出力されています。

まとめ

DateTimeOffset.Add()メソッドを使えば、TimeSpanで表した任意の期間(日・時間・分・秒など)を簡単に加算できます。UTCオフセット情報も保持されたまま計算されるため、タイムゾーンを扱うアプリケーションでの日時演算に非常に便利です。減算を行いたい場合は、同じくTimeSpanを受け取るSubtract()メソッドや、負のTimeSpanをAdd()に渡す方法もあります。

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

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

  2. C#のDateTime.Add()メソッドとは?構文と使い方を実例付きで解説

    C#のDateTime.Add()メソッドは、指定したTimeSpanの値を現在のDateTimeインスタンスに加算し、その結果として新しいDateTimeオブジェクトを返すメソッドです。元のインスタンス自体は変更されず、計算結果が新しいオブジェクトとして生成される点が特徴です。基本構文DateTime.Add()メソッドの構文は以下の通りです。public DateTime Add (TimeSpan val);引数 val には、加算する時間間隔を表す TimeSpan を指定します。正の値を渡せば日時が進み、負の値を渡せば日時が遡ります。使用例1:日付を加算するまずは、115日分のTim