1ヶ月前や後の日付を取得したい
今回は1ヶ月前や1ヶ月後の日付を
Calendarを使用し取得したいと思います。
まず、本日の日付を取得します。
Calendar calendar = Calendar.getInstance();
上記から月に対して"+1"か"-1"をします。
◆1ヶ月前
calendar.add(Calendar.MONTH, -1);
◆1ヶ月後
calendar.add(Calendar.MONTH, 1);
結果は以下で取得することが出来ます。
int month = calendar.get(Calendar.MONTH);
※ただ、ここで注意が必要です。
(普段考えることがあまりないと思いますが、)
本日が1月31日だった場合1ヶ月後はいつになるのでしょうか。
人によって其々だと思います。
上記の方法で1ヶ月後を求めた場合を以下にまとめました。
◆2018/01/31の1ヶ月後:2018/03/03
◆2018/02/28の1ヶ月後:2018/03/28
以上から、本日の日付が1ヶ月後に存在しない場合
+31日を行い繰り越しになります。
逆に存在する場合は繰り越しされずそのままの日付となります。
PJによって計算の仕方は変わると思うので、
注意して使用してみてください。
----------------------------------------------------
ちなみに、TargetSdkVersion26(Android8.0)から追加された
LocalDateTimeのplusMonthsは、
本日の日付が1ヶ月後に存在しない場合も
繰り越しせず月の最終日を設定してくれるそうです。
以下例。
◆2018/01/31の1ヵ月後:2018/02/28
◆2018/02/28の1ヵ月後:2018/02/28
----------------------------------------------------