今回のテーマ
こんばんは、サルモリです。今回もDateTime型のメソッドについて紹介していきます。
今回のテーマは下記です。
今回のテーマ
n年後、nか月後、n日後の求め方
今回はある日時からn年後、nか月後、n日後を求める方法を解説します。
それでは早速やっていきましょう!!
n年後、nか月後、n日後の求め方
まずはn年後、nか月後、n日後を求めるメソッドについて紹介します。
下記のメソッドを使用します。
使用するメソッド
n年後を求める方法:AddYears
nか月後を求める方法:AddMonths
n日後を求める方法:AddDays
各メソッドの使い方の例をみてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; class Program { static void Main(string[] args) { DateTime date = new DateTime(2018, 1, 1); //2018年1月1日 Console.WriteLine(date); //2020年1月1日 Console.WriteLine(date.AddYears(2)); //2018年6月1日 Console.WriteLine(date.AddMonths(5)); //2018年1月20日 Console.WriteLine(date.AddDays(19)); } } |
出力結果
2018/01/01 0:00:00
2020/01/01 0:00:00
2018/06/01 0:00:00
2018/01/20 0:00:00
出力結果をみてみると、元の2018/01/01に対して、年月日が加算された日付が出力されました。
下記のように一度に指定することも可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System; class Program { static void Main(string[] args) { DateTime date = new DateTime(2018, 1, 1); //2018年1月1日 Console.WriteLine(date); //2020年6月20日 Console.WriteLine(date.AddYears(2).AddMonths(5).AddDays(19)); } } |
出力結果
2018/01/01 0:00:00
2020/06/20 0:00:00
n年前、nか月前、n日前の求め方
これらのメソッドを使用することで、対象の年月日より過去の日付も求めることができます。
ソースコードをみてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; class Program { static void Main(string[] args) { DateTime date = new DateTime(2018, 10, 30); //2018年10月30日 Console.WriteLine(date); //2016年10月30日 Console.WriteLine(date.AddYears(-2)); //2018年5月30日 Console.WriteLine(date.AddMonths(-5)); //2018年10月20日 Console.WriteLine(date.AddDays(-10)); } } |
出力結果
2018/10/30 0:00:00
2016/10/30 0:00:00
2018/05/30 0:00:00
2018/10/20 0:00:00
引数に負の値を指定することで、過去の値を出力できていますね。
n時間後、n分後、n秒後の求め方
年月日だけでなく、時分秒後を求めるメソッドも下記のように用意されています。
使用するメソッド
n時間後を求める方法:AddHours
n分後を求める方法:AddMinutes
n秒後を求める方法:AddSeconds
ソースコードの例と出力結果もみてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; class Program { static void Main(string[] args) { DateTime date = new DateTime(2018, 10, 30); //2018年10月30日 Console.WriteLine(date); //2016年10月30日 Console.WriteLine(date.AddHours(2)); //2018年5月30日 Console.WriteLine(date.AddMinutes(5)); //2018年10月20日 Console.WriteLine(date.AddSeconds(10)); } } |
出力結果
2018/10/30 0:00:00
2018/10/30 2:00:00
2018/10/30 0:05:00
2018/10/30 0:00:10
出力結果をみれば、それぞれ未来の時刻となっていることが分かりますね。
まとめ
今回はn年後、nか月後、n日後を求めるメソッドについて解説しました。
比較的使用することが多いメソッドなので、ぜひ使い方を覚えておいてください。
それでは、今回の記事は以上とします。