C#のDateTime.AddHours()メソッドの使い方を徹底解説
C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。
基本仕様
- DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。
- 戻り値は加算後の日時を持つ新しいDateTimeです。
構文
public DateTime AddHours (double hrs);
パラメータ hrs には加算する時間数を指定します。負の値を渡すことで、時間を減算(引き算)することも可能です。小数点以下の値も扱えるため、30分を加算したい場合は「0.5」を指定します。
使用例1:時間を加算する
まずは、基本的な使い方を見てみましょう。以下の例では、2019年11月2日9時00分10秒に2時間を加算しています。
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 11, 2, 9, 0, 10);
DateTime d2 = d1.AddHours(2);
System.Console.WriteLine("初期のDateTime = {0:dd} {0:y}, {0:t} ", d1);
System.Console.WriteLine("\n新しいDateTime(加算後) = {0:dd} {0:y}, {0:t} ", d2);
}
}実行結果
初期のDateTime = 02 November 2019, 9:00 AM 新しいDateTime(加算後) = 02 November 2019, 11:00 AM
元の時刻「9:00」から2時間が加算され、「11:00」と表示されていることが確認できます。
使用例2:負の値で時間を減算する
次に、パラメータに負の値を指定して時間を減算する例です。以下のコードでは、2019年10月5日9時00分10秒から5時間を引いています。
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 10, 5, 9, 0, 10);
DateTime d2 = d1.AddHours(-5);
System.Console.WriteLine("初期のDateTime = {0:dd} {0:y}, {0:t} ", d1);
System.Console.WriteLine("\n新しいDateTime(減算後) = {0:dd} {0:y}, {0:t} ", d2);
}
}実行結果
初期のDateTime = 05 October 2019, 9:00 AM 新しいDateTime(減算後) = 05 October 2019, 4:00 AM
「9:00」から5時間減算され、「4:00」という結果になっています。
注意点
- 加算・減算の結果がDateTime.MinValue(西暦1年1月1日)より前、またはDateTime.MaxValue(9999年12月31日)より後になる場合は、ArgumentOutOfRangeExceptionがスローされます。
- 日付をまたぐ加算・減算も自動的に処理されるため、月末や年越しの計算でも安全に利用できます。
まとめ
DateTime.AddHours()メソッドを使えば、日時に対して柔軟に時間の加算・減算を行うことができます。元のオブジェクトは変更されず、常に新しいDateTimeが返されるという特性を理解しておくと、バグの少ないコードを書くことができます。同様のメソッドにはAddMinutes()やAddDays()などもありますので、用途に応じて使い分けましょう。
-
C#のDateTime.AddYears()メソッドとは?使い方をわかりやすく解説
C#のDateTime.AddYears()メソッドは、このインスタンスが表す日時に指定した年数を加算し、その結果を新しいDateTimeとして返します。DateTimeは不変(イミュータブル)な構造体であるため、元のインスタンスの値が変更されることはありません。構文public DateTime AddYears (int yrs);パラメータ yrs には、加算する年数を整数で指定します。年数を減算したい場合は、負の値を渡してください。押さえておきたいポイント戻り値は計算結果を表す新しいDateTimeインスタンスで、元の日時には影響しません。うるう日の2月29日に対して加算・減算を行い、
-
C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法
C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動