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