zoukankan      html  css  js  c++  java
  • 获取两个日期间月份

        /**
         * 获取两个日期间月份
         * @param minDate 开始日期
         * @param maxDate 结束日期
         * @return
         * @throws ParseException
         */
        public static List<String> getMonthBetween(String minDate, String maxDate) throws ParseException {
            ArrayList<String> result = new ArrayList<String>();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");//格式化为年月
    
            Calendar min = Calendar.getInstance();
            Calendar max = Calendar.getInstance();
    
            min.setTime(sdf.parse(minDate));
            min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);
    
            max.setTime(sdf.parse(maxDate));
            max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);
            Calendar curr = min;
            while (curr.before(max)) {
                result.add(sdf.format(curr.getTime()));
                curr.add(Calendar.MONTH, 1);
            }
            min = null;max = null;curr = null;
            return result;
        }
    
        /**
         * 获取指定年月的最后一天
         * @param yearMonth yyyy-MM
         * @return
         */
        public static String getLastDayOfMonth(String yearMonth) {
            int year = Integer.parseInt(yearMonth.split("-")[0]);  //年
            int month = Integer.parseInt(yearMonth.split("-")[1]); //月
            Calendar cal = Calendar.getInstance();
            // 设置年份
            cal.set(Calendar.YEAR, year);
            // 设置月份
            // cal.set(Calendar.MONTH, month - 1);
            cal.set(Calendar.MONTH, month); //设置当前月的上一个月
            // 获取某月最大天数
            //int lastDay = cal.getActualMaximum(Calendar.DATE);
            int lastDay = cal.getMinimum(Calendar.DATE); //获取月份中的最小值,即第一天
            // 设置日历中月份的最大天数
            //cal.set(Calendar.DAY_OF_MONTH, lastDay);
            cal.set(Calendar.DAY_OF_MONTH, lastDay - 1); //上月的第一天减去1就是当月的最后一天
            // 格式化日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return sdf.format(cal.getTime());
        }
    
    
        /**
         * 推算时间
         * @param yyyyMM
         * @param forward
         * @return
         */
        public static Date forwardDate(String yyyyMM, int forward) {
            Date date = DateUtil.str2Date(yyyyMM, DATE_FORMAT_YYYY_MM);
            Calendar instance = Calendar.getInstance();
            instance.setTime(date);
            instance.add(Calendar.MONTH, forward);
            return instance.getTime();
        }
    
        /**
         * 获取当前月份的上一个月
         * @return
         */
        public static String getLastMonth(){
            SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM");
            Calendar c = Calendar.getInstance();
            c.setTime(new Date());
            c.add(Calendar.MONTH, -1);
            Date m = c.getTime();
            String month = sdfMonth.format(m);
            return month;
        }
    
        /**
         * 获取当前月份的上n个月
         * @return
         */
        public static String getLastMonth(int n){
            SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM");
            Calendar c = Calendar.getInstance();
            c.setTime(new Date());
            c.add(Calendar.MONTH, -n);
            Date m = c.getTime();
            String month = sdfMonth.format(m);
            return month;
        }
    

      

  • 相关阅读:
    您知道SASS吗?
    打破技术壁垒, 用SpreadJS 抢占“表格文档协同编辑系统”的入市先机
    7种你应该知道的JavaScript常见的错误
    前端开发:这10个Chrome扩展你不得不知
    疫情下,买菜难,其实卖菜的也是这么想的
    疫情之下远程办公,开启企业办公的全新时代!
    “泛在电力物联网”究竟是什么?
    2020 春节集五福最详细收集攻略
    怎样使我们的用户不再抵触填写Form表单?
    新事业,新征程:换屏哥,您身边的手机维修专家
  • 原文地址:https://www.cnblogs.com/lewisat/p/15655786.html
Copyright © 2011-2022 走看看