Addメソッド・Subtractメソッドでは引数にTimeSpanを取るため、8時間30分5秒前や1日と8時間後といった日時を一度のメソッド呼び出しで求めることができます。 さらに、C#・VB.NETなどオーバーロードされた演算子を使用できる言語では、DateTime・DateTimeOffsetにTimeSpanを加減算するために加算演算子・減算演算子を使うこともできます。 当然、結果はAddメソッド・Subtractメソッドを使う場合と同じです。
DateTime/DateTimeOffset.Add・SubtractメソッドとTimeSpanを使って日時の加減算を行う
using System;
class Sample {
static void Main()
{
// +36時間を表すTimeSpan
var span = new TimeSpan(36, 0, 0);
// DateTimeにTimeSpanを加算する
var dt = new DateTime(2012, 2, 28);
Console.WriteLine(dt + span); // == dt.Add(span)
// DateTimeOffsetにTimeSpanを加算する
var dto = new DateTimeOffset(2012, 2, 28, 0, 0, 0, TimeSpan.Zero);
Console.WriteLine(dto + span); // == dto.Add(span)
}
}
実行結果
2012/02/29 12:00:00 2012/02/29 12:00:00 +00:00