【C#入門】DateTime.Subtract()メソッドの使い方を徹底解説
C#のDateTime.Subtract()メソッドは、指定したDateTime(日時)またはTimeSpan(時間間隔)を減算するために使用されるメソッドです。2つの日時の差を計算したい場合や、特定の日時から一定の期間を引き算したい場合に活用できます。
DateTime.Subtract()メソッドの構文
DateTime.Subtract()メソッドには、以下の2つのオーバーロードが用意されています。
public TimeSpan Subtract (DateTime value); public DateTime Subtract (TimeSpan value);
- DateTime型を引数に渡す場合:2つの日時の差がTimeSpanとして返されます。
- TimeSpan型を引数に渡す場合:元の日時から時間間隔を減算した新しいDateTimeが返されます。
例1:DateTime同士の差を求める
まず、2つのDateTimeオブジェクトの差を計算する例を見てみましょう。
using System;
public class Demo {
public static void Main() {
DateTime d1 = new DateTime(2019, 10, 10, 8, 10, 40);
DateTime d2 = new DateTime(2017, 11, 06, 8, 10, 40);
Console.WriteLine("Date 1 = "+d1);
Console.WriteLine("Date 2 = "+d2);
TimeSpan res = d1.Subtract(d2);
Console.WriteLine("TimeSpan between two dates = {0} ",res);
}
}実行結果
上記のコードを実行すると、以下のような出力が得られます。
Date 1 = 10/10/2019 8:10:40 AM Date 2 = 11/6/2017 8:10:40 AM TimeSpan between two dates = 703.00:00:00
この例では、d1(2019年10月10日)からd2(2017年11月6日)を減算しており、その結果として「703日」を表すTimeSpanが返されています。
例2:DateTimeからTimeSpanを減算する
次に、DateTimeからTimeSpanを減算して新しい日時を取得する例を見てみましょう。
using System;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 10, 10, 8, 10, 40);
TimeSpan t = new TimeSpan(1, 10, 10, 12);
Console.WriteLine("Date = "+d);
DateTime res = d.Subtract(t);
Console.WriteLine("DateTime between date d and timespan t = {0} ",res);
}
}実行結果
上記のコードを実行すると、以下のような出力が得られます。
Date = 10/10/2019 8:10:40 AM DateTime between date d and timespan t = 10/8/2019 10:00:28 PM
この例では、日時d(2019年10月10日 8:10:40)から「1日10時間10分12秒」のTimeSpanを減算しています。その結果、「2019年10月8日 22:00:28」という新しいDateTimeが返されました。
まとめ
DateTime.Subtract()メソッドを使うことで、日時同士の差分計算や、日時からの期間減算を簡単に行うことができます。引数にDateTimeを渡せば差分がTimeSpanで取得でき、TimeSpanを渡せば減算後の日時がDateTimeで取得できるという使い分けを覚えておきましょう。
-
C#のDateTime.AddYears()メソッドとは?使い方をわかりやすく解説
C#のDateTime.AddYears()メソッドは、このインスタンスが表す日時に指定した年数を加算し、その結果を新しいDateTimeとして返します。DateTimeは不変(イミュータブル)な構造体であるため、元のインスタンスの値が変更されることはありません。構文public DateTime AddYears (int yrs);パラメータ yrs には、加算する年数を整数で指定します。年数を減算したい場合は、負の値を渡してください。押さえておきたいポイント戻り値は計算結果を表す新しいDateTimeインスタンスで、元の日時には影響しません。うるう日の2月29日に対して加算・減算を行い、
-
C#のDateTime.AddHours()メソッドの使い方を徹底解説
C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。基本仕様DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。戻り値は加算後の日時を持つ新しいDateTimeです。構文public DateTime AddHours (double hrs);パラメータ hrs には加算する時間数を指定します。負の値を渡すこ