【C#入門】DateTimeOffset.AddHours()メソッドで時間を加算・減算する方法
C#のDateTimeOffset.AddHours()メソッドは、現在のインスタンスが持つ日時の値に対して、指定した時間数(整数値だけでなく小数値も可)を加算するために使用されるメソッドです。オフセット情報(UTCとの時差)はそのまま維持され、日時のみが計算されます。
構文
AddHours()メソッドの基本的な構文は以下のとおりです。
public DateTimeOffset AddHours (double hrs);
引数 hrs には加算する時間数をdouble型で指定します。逆に時間を引き算したい場合は、負の値を渡すことで減算処理が可能です。
使用例1:時間を加算する
まずは、DateTimeOffset.AddHours()メソッドを使って時間を加算する基本的な例を見てみましょう。
using System;
public class Demo {
public static void Main() {
DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 10, 10, 3, 15, 0, new TimeSpan(-5, 0, 0));
Console.WriteLine("DateTimeOffset (before adding hours) = {0}", dateTimeOffset);
DateTimeOffset res = dateTimeOffset.AddHours(4);
Console.WriteLine("DateTimeOffset (after adding hours) = {0}", res);
}
}実行結果
上記のコードを実行すると、以下のような出力が得られます。
DateTimeOffset (before adding hours) = 10/10/2019 3:15:00 AM -05:00 DateTimeOffset (after adding hours) = 10/10/2019 7:15:00 AM -05:00
この例では、オフセット「-05:00」を持つ2019年10月10日午前3時15分の日時に4時間を加算しているため、結果は同日の午前7時15分になっています。オフセット部分は変化していない点に注目してください。
使用例2:負の値で時間を減算する
次に、負の値を指定して時間を減算する例を紹介します。
using System;
public class Demo {
public static void Main() {
DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 11, 10, 3, 15, 0, new TimeSpan(-5, 0, 0));
Console.WriteLine("DateTimeOffset (before subtracting hours) = {0}", dateTimeOffset);
DateTimeOffset res = dateTimeOffset.AddHours(-2);
Console.WriteLine("DateTimeOffset (after subtracting hours) = {0}", res);
}
}実行結果
上記のコードを実行すると、以下のような出力が得られます。
DateTimeOffset (before subtracting hours) = 11/10/2019 3:15:00 AM -05:00 DateTimeOffset (after subtracting hours) = 11/10/2019 1:15:00 AM -05:00
この例では、-2という負の値を引数に渡すことで、元の日時から2時間が差し引かれ、午前1時15分という結果になっています。
まとめ
DateTimeOffset.AddHours()メソッドを使用すれば、オフセット情報を保持したまま日時に時間数を簡単に加算・減算できます。正の値で加算、負の値で減算というシンプルなルールなので、日時計算を行うアプリケーション開発において非常に便利なメソッドです。
-
【C#入門】DateTimeOffset.AddYears()メソッドの使い方を徹底解説
C#のDateTimeOffset.AddYears()メソッドは、現在のDateTimeOffsetインスタンスが表す日時に、指定した年数を加算した新しいDateTimeOffset値を返すメソッドです。元のインスタンスの値は変更されず、計算結果が新しいオブジェクトとして返される点に注意してください。構文AddYears()メソッドの構文は以下のとおりです。public DateTimeOffset AddYears (int val);引数valには、加算する年数を整数で指定します。負の値を指定すると、年数を減算(過去にさかのぼる)ことができます。主な特徴戻り値は新しいDateTimeOf
-
C#のDateTime.AddHours()メソッドの使い方を徹底解説
C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。基本仕様DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。戻り値は加算後の日時を持つ新しいDateTimeです。構文public DateTime AddHours (double hrs);パラメータ hrs には加算する時間数を指定します。負の値を渡すこ