コンストラクタで具体的な日時を指定する他にも、基準となる日時から加減算して目的の日時のインスタンスを作成することも出来ます。 例えば、AddDaysメソッドを使用するとインスタンスに指定した日数を足した日時を取得することが出来るため、このメソッドを使うと上記の例は次のように書き換えることが出来ます。

DateTime.Addメソッドを使ってDateTimeの表す日時に加減算する
using System;

class Sample {
  static void Main()
  {
    var now = DateTime.Now; // 現在日時を取得

    // 明日同時刻のインスタンスを作成
    var oneDayLater = now.AddDays(1.0); // nowに1.0日分加算した値を求める

    Console.WriteLine(now);
    Console.WriteLine(oneDayLater);
  }
}
実行結果例
2013/04/01 15:00:30
2013/04/02 15:00:30

AddDaysメソッドでは、月替りを跨ぐような加算も正しく行われます。 例えば上記の例を4月30日に実行すると、4月31日という不正な日付ではなく、5月1日という正しい日付が得られます。

AddDaysメソッドだけでなく、DateTime・DateTimeOffsetには日時に対して加減算を行うためのメソッドがいくつか用意されています。 次の表はそのようなメソッドをまとめたものです。

日時に対する加減算を行うメソッド
メソッド 機能 引数の型
DateTime.AddYears
DateTimeOffset.AddYears
指定された年数を加算した日時を求める int/Integer
DateTime.AddMonths
DateTimeOffset.AddMonths
指定された月数を加算した日時を求める int/Integer
DateTime.AddDays
DateTimeOffset.AddDays
指定された日数を加算した日時を求める double/Double
DateTime.AddHours
DateTimeOffset.AddHours
指定された時間数を加算した日時を求める double/Double
DateTime.AddMinutes
DateTimeOffset.AddMinutes
指定された分数を加算した日時を求める double/Double
DateTime.AddSeconds
DateTimeOffset.AddSeconds
指定された秒数を加算した日時を求める double/Double
DateTime.AddMilliseconds
DateTimeOffset.AddMilliseconds
指定されたミリ秒数を加算した日時を求める double/Double
DateTime.AddTicks
DateTimeOffset.AddTicks
指定されたタイマ刻み数(100ナノ秒単位)を加算した日時を求める long/Long
DateTime.Add
DateTimeOffset.Add
指定された時間間隔を加算した日時を求める TimeSpan
DateTime.Subtract
DateTimeOffset.Subtract
指定された時間間隔を減算した日時を求める TimeSpan

これらのメソッドのうちいくつかは引数にdoubleを取るものが用意されているため、1.5日後や8.5時間後といった日時を求めることが出来ます。 正数だけでなく負数も指定することが出来るため、これらのメソッドを使ってある日時から3日前(= -3日後)、5年前(= -5年後)といった日時を求めることも出来ます。