5

日付の変数 nowDate 型があり、次の月の最終日を含む変数 nextDate を設定したい。

例: nowDate = 2013-04-16

したがって、nextDate には 2013-05-31 が含まれます

どうやってやるの?

4

9 に答える 9

6

試す

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);
于 2013-04-04T09:28:56.490 に答える
4

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();
于 2013-04-04T09:22:42.533 に答える
0

カレンダーを使用:

まず、カレンダーを次の月に設定します。使用する: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 ); 

    }
}

IDEONEデモ

于 2013-04-04T09:29:41.663 に答える
0

非常に多くの良い回答がありますが、上記の回答にはすべて次のようなコードがあります。

cal.add(Calendar.MONTH, 1);

Months は 0 から始まり、1 は 2 月を表すため、このコードは少し混乱を招きます。

(編集: add() 関数の整数は月数 (1=2 月) ではなく、追加する月数です)

于 2014-06-08T21:23:23.187 に答える