【Calendar】Calendar設定月份為本月最後一天
阿新 • • 發佈:2019-02-08
1.例如:
現在是2017年6月19日;我想設定時間為6月最後一天;
2.思路:
因為要考慮到每個月最後一天是28,29,30,還是31號所以正常思維來做很麻煩;這裡我們換一種思路:
找到上個月的第一天,這裡是:2017年7月1日;我們再讓月日期減一,這樣,Calendar會自動幫你跳到6月最後一天,即2017年6月30日;
3.原始碼:
public class TestDemo2 {
public static void main(String[] args) {
Date currentDateTime=new Date();/*全域性變數*/
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDateTime);/*設定空例項的時間為當前時間:2017年6月19日10:31:57*/
calendar.set(Calendar.DAY_OF_MONTH,1);/*設定例項中天數為:本月1號;例如,現在是2017年6月1日10:31:57*/
// calendar.set(Calendar.MONTH,Integer.valueOf(month));/**/
calendar.add(Calendar.MONTH,1 );/*將本月+1,變成2017年7月1日10:31:28*/
calendar.add(Calendar.DAY_OF_MONTH,-1);/*將本月天數-1,7月1號,變成6月30號了,這樣就不必考慮最後一天是幾號了*/
System.out.println(currentDateTime);/*設定一個參考量,這裡是當前真實時間*/
System.out.println(DateUtil.formatDateToString(calendar.getTime(),"yyyy-MM-dd HH:mm:ss"));
}
}
4.截圖:
4.1程式碼截圖:
4.2控制檯結果截圖:
5.總結:
我們可以看到,真實時間是:
Mon Jun 19 10:38:37 CST 2017
我們要的時間是:
2017-06-30 10:38:37
對比下月份和天數,我們就可以得到本月最後一天了;