日付の変数 nowDate 型があり、次の月の最終日を含む変数 nextDate を設定したい。
例: nowDate = 2013-04-16
したがって、nextDate には 2013-05-31 が含まれます
どうやってやるの?
日付の変数 nowDate 型があり、次の月の最終日を含む変数 nextDate を設定したい。
例: nowDate = 2013-04-16
したがって、nextDate には 2013-05-31 が含まれます
どうやってやるの?
試す
private static Date getNextDate(Date nowDate) {
Calendar c = Calendar.getInstance();
c.setTime(nowDate);
c.add(Calendar.MONTH, 1);
c.set(Calendar.DATE, c.getMaximum(Calendar.DATE));
Date nextDate = c.getTime();
return nextDate;
}
使用法:
Date nowDate = new Date();
Date nextDate = getNextDate(nowDate);
a を 2 か月先の 1 日目に設定してCalendar
から、1 日を差し引くことができます。
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 2);
c.set(Calendar.DAY_OF_MONTH, 1);
c.add(Calendar.DATE, -1);
Date nextDate = c.getTime();
他の人がすでに指摘しているように、1 か月を追加して、翌月Calendar.getActualMaximum()
の最終日を設定することもできます。
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 1);
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
Date nextDate = c.getTime();
カレンダーを使用:
まず、カレンダーを次の月に設定します。使用する:cal.add(Calendar.MONTH, 1);
次に、 getActualMaximumを使用して、前の手順で設定した月の最終日を計算します。
import java.util.Calendar;
import java.util.Date;
public class Main{
public static void main(String ar[]){
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
cal.add(Calendar.MONTH, 1);
Date lastDateOfNextMonth = cal.getTime();
System.out.println(lastDateOfNextMonth );
}
}
非常に多くの良い回答がありますが、上記の回答にはすべて次のようなコードがあります。
cal.add(Calendar.MONTH, 1);
Months は 0 から始まり、1 は 2 月を表すため、このコードは少し混乱を招きます。
(編集: add() 関数の整数は月数 (1=2 月) ではなく、追加する月数です)