我有變量nowDate類型的Date,我想設置變量nextDate包含下個月的最後一天。java得到下個月的最後一天
例如: nowDate = 2013年4月16日
所以nextDate將包含2013年5月31日
我怎麼能這樣做?
我有變量nowDate類型的Date,我想設置變量nextDate包含下個月的最後一天。java得到下個月的最後一天
例如: nowDate = 2013年4月16日
所以nextDate將包含2013年5月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);
你可以嘗試設置Calendar
一個未來2個月天,然後。減去一個一天:
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();
哈維相似,但是一個較少的代碼行:-)
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 1);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
您可以執行以下操作來獲得的最後一天月
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
-1:OP要計算下個月的最後一天,而不是當前月份的最後一天。 – 2013-04-04 10:10:00
一種方法是將2個月增加到當前月份並將日期設置爲1。之後,將日期減1,它會給你月的最後一天。這將自動處理閏年,30天,31天,29天和28天。下面
public class LastDayofNextMonth {
public static void main(String args[])
{
Calendar cal = Calendar.getInstance();
cal.set(2013,Calendar.APRIL, 14) ;
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+2);
cal.set(Calendar.DATE,1);
cal.add(Calendar.DATE,-1);
System.out.println(cal.getTime().toString());
}
}
哈維已經在上面發佈了相同的答案...哎呀,我遲到了.. – Joe2013 2013-04-04 09:29:15
使用Calendar:
首先設置日曆到下個月。 用途: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);
這個代碼產生了一點混亂,因爲個月從0開始,所以1是二月份。
(編輯:在add()函數整數不是該月號(1 =月),但月數增加)
爲什麼2添加到一個月?爲什麼設置1個月中的某一天? – faszynski 2013-04-04 09:25:51
這樣做的原因是爲了能夠減少一天,並得到你想要的日期。 '日曆'將處理月份日期,閏年等方面的差異。 – 2013-04-04 09:43:26