1. 程式人生 > >【Calendar】Calendar設定月份為本月最後一天

【Calendar】Calendar設定月份為本月最後一天

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
對比下月份和天數,我們就可以得到本月最後一天了;

這裡的核心是:用不變的(1號)來得到變的(最後一天);