DateTime型で足し算・引き算を行う方法(C#)

  • このエントリーをはてなブックマークに追加

スポンサーリンク

※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~

目次

はじめに

DateTime型とDateTime型を直接足し算することはできません。

詳しい理由はよくわかりませんが、単純に意味のある値にならないからでしょうか。

例えば、2000年6月と2030年3月を足し算することを考えます。

結果は、4030年の9月になりますが、このような計算を実際の業務ですることは皆無です。

とはいえ、DateTime型で表現されている値の10日後の日付を得たいという欲求はあるでしょう。

このような状況を解決する方法は主に2つあります。

1:時間間隔を意味するTimeSpan型を使用
2:DateTime型で用意されているメソッドを使用する

TimeSpan型の使用

TimeSpan型は時間間隔を扱います。

以下のような計算パターンが許されます。

TimeSpan=DateTime-DateTime
DateTime =DateTime±TimeSpan

ソースコード

実行結果

18456.02:20:20
2000/03/23 8:30:20
2050/09/27 10:50:40
2000/03/23 8:30:20
2050/09/27 10:50:40

DateTime型のメソッド

DateTime型では、以下のようなメソッドが用意されています。

メソッド 意味 引数の型
AddYears 年を足す int
AddMonths 月を足す int
AddDays 日を足す double
AddHours 時を足す double
AddMinutes 分を足す double
AddSeconds 秒を足す double
AddMilliseconds ミリ秒を足す double
Add 時間間隔を足す TimeSpan

年と月に関するメソッドの引数は整数のみしか受け付けません。

また、引き算をしたい場合は、マイナスの値を入れればいいです。

ソースコード

実行結果

2000/03/20 8:30:20
2000/03/20 8:30:20
2000/03/25 8:30:20
2000/03/22 8:30:20

注意すべき点として、

dt1.AddDays(5);

と書いただけではdt1の値が変更されません。

dt1 = dt1.AddDays(5);

と変更した値を代入する必要があります。

関連記事

~Webサイトを自分で作ってみませんか?~

Webサイトを運営するにはサーバーが必須です。
このサイトは、エックスサーバー のサーバーを使用しています。
エックスサーバーは無料で10日間お試しができます。

     

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)