C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法
C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。
基本構文
DateTime.AddDays()メソッドの構文は以下のとおりです。
public DateTime AddDays (double days);
引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動)することも可能です。
サンプルコード1:基本的な使い方
まずは、特定の日付に25日を加算するシンプルな例を見てみましょう。
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 11, 2, 8, 0, 15);
DateTime d2 = d1.AddDays(25);
System.Console.WriteLine("Initial DateTime = {0:y} {0:dd}", d1);
System.Console.WriteLine("\nNew DateTime (After adding days) = {0:y} {0:dd}", d2);
}
}
実行結果
Initial DateTime = November 2019 02 New DateTime (After adding days) = November 2019 27
この例では、2019年11月2日に25日を加算し、2019年11月27日の新しいDateTimeが生成されていることがわかります。時刻情報(8時0分15秒)もそのまま保持されます。
サンプルコード2:DateTime.MinValueからの加算
次に、表現できる最小の日付であるDateTime.MinValue(西暦0001年1月1日)から150日を加算する例です。
using System;
public class Demo {
public static void Main(){
DateTime d1 = DateTime.MinValue;
DateTime d2 = d1.AddDays(150);
System.Console.WriteLine("Initial DateTime = {0:y} {0:dd}", d1);
System.Console.WriteLine("\nNew DateTime (After adding days) = {0:y} {0:dd}", d2);
}
}
実行結果
Initial DateTime = January 0001 01 New DateTime (After adding days) = May 0001 31
0001年1月1日に150日を加算すると、0001年5月31日となります。うるう年や月ごとの日数の違いも自動的に考慮されるため、開発者が手動で日数計算を行う必要はありません。
注意点
- 不変性(イミュータブル): DateTimeは値型であり、AddDays()を呼び出しても元のオブジェクトは変更されません。必ず戻り値を変数に代入してください。
- 範囲外エラー: 加算結果がDateTime.MinValue〜DateTime.MaxValueの範囲を超えると、ArgumentOutOfRangeExceptionがスローされます。
- 小数の指定: 引数はdouble型のため、0.5などの小数を指定すると時間単位の加算も可能です(0.5日は12時間)。
DateTime.AddDays()は、期限日の計算やスケジュール処理など、日付操作を行う場面で頻繁に活用される便利なメソッドです。ぜひ実際のコードで試してみてください。
-
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 には加算する時間数を指定します。負の値を渡すこ