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

C#のTimeSpan.Add()メソッドの使い方を徹底解説!サンプルコード付き

C#におけるTimeSpan.Add()メソッドは、指定したTimeSpanオブジェクトと現在のインスタンスの値を合計した、新しいTimeSpanオブジェクトを返すメソッドです。時間間隔の加算処理を行いたい場合に便利な機能で、元のインスタンス自体は変更されず、計算結果が新しいオブジェクトとして返される点が特徴です。

構文

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

public TimeSpan Add (TimeSpan span);

パラメータ「span」には、加算する対象となる時間間隔(TimeSpan)を指定します。戻り値としては、両者の値を合計した新しいTimeSpanオブジェクトが返されます。

基本的な使用例

まずは、複数のTimeSpanオブジェクトをAdd()メソッドで加算する基本的な例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        TimeSpan span1 = new TimeSpan(2, 17, 20, 30);
        TimeSpan span2 = new TimeSpan(3, 18, 25, 25);
        TimeSpan span3 = new TimeSpan(-8, 30, 0);
        TimeSpan res1 = span1.Add(span2);
        TimeSpan res2 = span2.Add(span3);
        Console.WriteLine("Final Timespan (TimeSpan1 + TimeSpan2) = "+res1);
        Console.WriteLine("Final Timespan (TimeSpan2 + TimeSpan3) = "+res2);
    }
}

実行結果

このプログラムを実行すると、以下のような出力が得られます。

Final Timespan (TimeSpan1 + TimeSpan2) = 6.11:45:55
Final Timespan (TimeSpan2 + TimeSpan3) = 3.10:55:25

この例では、span1(2日17時間20分30秒)にspan2(3日18時間25分25秒)を加算すると「6.11:45:55」となり、またspan2に負の値を持つspan3(-8時間30分)を加算すると「3.10:55:25」になります。このように、負のTimeSpanも問題なく扱えるのがAdd()メソッドの利点です。

MinValueを使用した応用例

次に、TimeSpan.MinValue(TimeSpanが表現できる最小値)を使った例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        TimeSpan span1 = new TimeSpan(-6, 25, 0);
        TimeSpan span2 = new TimeSpan(1, 11, 25, 20);
        TimeSpan span3 = TimeSpan.MinValue;
        TimeSpan res1 = span1.Add(span2);
        TimeSpan res2 = span2.Add(span3);
        Console.WriteLine("Final Timespan (TimeSpan1 + TimeSpan2) = "+res1);
        Console.WriteLine("Final Timespan (TimeSpan2 + TimeSpan3) = "+res2);
    }
}

実行結果

このプログラムを実行すると、以下の出力が得られます。

Final Timespan (TimeSpan1 + TimeSpan2) = 1.05:50:20
Final Timespan (TimeSpan2 + TimeSpan3) = -10675197.15:22:45.4775808

2つ目の計算では、span2にTimeSpan.MinValueを加算しているため、結果がTimeSpanが表現できる最小値「-10675197.15:22:45.4775808」になっています。これは、加算結果がTimeSpan型の範囲(約±10,675,199日)を超えた場合でも、例外がスローされずに飽和した値が返されることを示しています。

まとめ

  • TimeSpan.Add()メソッドは、指定したTimeSpanと現在のインスタンスを合計した新しいTimeSpanを返す
  • 元のインスタンスは変更されない(イミュータブルな操作)
  • 負の時間間隔やTimeSpan.MinValueなども正しく処理できる

時間の加算処理が必要な場面では、演算子「+」を使う方法もありますが、Add()メソッドを使うことで意図が明確になり、可読性の高いコードを書くことができます。

  1. JavaScriptオブジェクトにメソッドを追加する方法をわかりやすく解説

    JavaScriptオブジェクトへのメソッド追加方法JavaScriptオブジェクトにメソッドを追加するのは、オブジェクトコンストラクター自体にメソッドを定義するよりもはるかに簡単です。すでに生成済みのオブジェクトに対して、新しいプロパティとして関数を代入するだけで、その関数をメソッドとして利用できるようになります。基本的な仕組みオブジェクトをインスタンス化した後でも、「オブジェクト名.メソッド名 = function() { ... }」という形式でメソッドを後から追加できます。このとき、関数内部ではthisキーワードを使用することで、そのオブジェクト自身のプロパティへアクセスできます。コー

  2. HTML DOMのinsertBefore()メソッドの使い方を徹底解説

    insertBefore()メソッドとはHTML DOMのinsertBefore()メソッドは、すでに存在する子ノードの直前に、新しいノードを挿入するためのメソッドです。リストの先頭に項目を追加したい場合など、DOM操作で要素の挿入位置を細かく制御したいときに非常に便利です。構文insertBefore()メソッドの基本的な構文は以下の通りです。node.insertBefore(newNode, existingNode)パラメータこのメソッドには、以下の2つのパラメータを指定します。パラメータ説明newNode先頭に追加したい、新しく作成した子ノードですexistingNodeすでに存在