zoukankan      html  css  js  c++  java
  • 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;
        }
  • 相关阅读:
    list和set的区别
    day13
    11期
    接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
    Object类?
    swith的用法和注意事项?
    Ioc和DI的区别?
    多态的好处?
    抽象和接口的区别?
    内部类,匿名内部类?
  • 原文地址:https://www.cnblogs.com/yetianxi/p/6048186.html
Copyright © 2011-2022 走看看