java時間計算,獲取某月第一天和最后一天


        //獲取前月的第一天
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 
        //獲取當前月第一天:
        Calendar c = Calendar.getInstance();

        String first = null;//第一天
        String last = null;//第二天
        //判斷獲取的參數如果為-1
        if(month.equals("-1")){
            c.add(Calendar.MONTH, -1);
            c.set(Calendar.DAY_OF_MONTH,1);//設置為1號,當前日期既為本月第一天 
            first = sdf.format(c.getTime());

            //獲取上月的最后一天
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.DAY_OF_MONTH, 1); 
            calendar.add(Calendar.DATE, -1);
            last = sdf.format(calendar.getTime());
        }else{
            c.add(Calendar.MONTH, 0);
            c.set(Calendar.DAY_OF_MONTH,1);//設置為1號,當前日期既為本月第一天 
            first = sdf.format(c.getTime());

            //獲取當前月最后一天
            Calendar ca = Calendar.getInstance();    
            ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));  
            last = sdf.format(ca.getTime());
        }


        //循環時間段
        Date startDate = sdf.parse(first);
    
        Date endDate = sdf.parse(last);

        Calendar start = Calendar.getInstance();
        start.setTime(startDate);
        Long statTime = start.getTimeInMillis();
        
        Calendar end = Calendar.getInstance();
        end.setTime(endDate);
        Long endTime = end.getTimeInMillis();

        Long oneDay = 1000 * 60 * 60 * 24l; 

        Long time = statTime;  

        List timeList=new ArrayList();
        while (time <= endTime) {  
            Date d = new Date(time);
            DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
            time += oneDay;
            timeList.add(df.format(d));
        }  

        //根據渠道ID查詢當前代理公司下有多少交易成功的單
        
        String lastDate = null;
        if(month.equals("-1")){
            //獲取這個時間段下一天
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.DAY_OF_MONTH, 1); 
            calendar.add(Calendar.DATE, 0);
            lastDate = sdf.format(calendar.getTime());
        }else{
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.DAY_OF_MONTH, 1);
            calendar.add(Calendar.MONTH, 1);
            lastDate = sdf.format(calendar.getTime());
        }

這是獲取時間,然后這個時間進行相加

比如

updateDate  = "2016-11-9"
//得到保單狀態最后修改的時間
Date updateDate = tranCar.getDtUpdateDate();
//計算時間,+3天
Calendar calendar = Calendar.getInstance();
calendar.setTime(updateDate);
calendar.add(calendar.DATE,3);
//得出的結果
updateDate  = "2016-11-12"

//獲取上個月25號的時間
    private String setDayLastMonth(SimpleDateFormat format) {
        Calendar month = Calendar.getInstance();
        month.add(Calendar.MONTH,-1);
        month.set(Calendar.DATE,25);
        String oneDayLastMonth = format.format(month.getTime());
        return oneDayLastMonth;
    }


//獲取當月的時間,這里時間不能超過當月25號
    private String setDayBefore(SimpleDateFormat format) {
        Calendar cal = Calendar.getInstance();//獲取一個日歷
        cal.add(Calendar.DAY_OF_MONTH, -1);//取當前日期的前一天.

        //當前時間
        String today = format.format(Calendar.getInstance().getTime());
        String theDayBefore = format.format(cal.getTime());
        //比較時間大小
        Date theDayBeforeDate = cal.getTime();//當前時間的前一天日期格式
        Date todayDate = Calendar.getInstance().getTime();//當前時間日期格式

        if(theDayBeforeDate.getTime() > todayDate.getTime()){
            //默認日期只能為本月的24日
            cal.set(Calendar.DATE,24);
            theDayBefore = format.format(cal.getTime());
        }
        return theDayBefore;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM