java获取起始日期之间的日期列表

    /**
     * 两个日期之间的年List,或者月List,或者日期List
     *
     * @param date1 开始日期
     * @param date2 结束日期
     * @param type 类型:年、月、日
     * @return
     */
    public static List<String> getDateList(String date1, String date2, String type) {
        List list = new ArrayList();
        String format = "yyyy-MM-dd";
        int cType = 0;
        if ("day".equals(type)) {
            format = "yyyy-MM-dd";
            cType = Calendar.DATE;
        } else if ("month".equals(type)) {
            format = "yyyy-MM";
            cType = Calendar.MONTH;
        } else if ("year".equals(type)) {
            format = "yyyy";
            cType = Calendar.YEAR;
        }
        SimpleDateFormat sf = new SimpleDateFormat(format);
        try {
            Date startDate = sf.parse(date1);
            Date endDate = sf.parse(date2);

            Calendar c1 = Calendar.getInstance();
            Calendar c2 = Calendar.getInstance();

            c1.setTime(startDate);
            c2.setTime(endDate);
            list.add(sf.format(c1.getTime()));
            while (c1.compareTo(c2) < 0) {
                c1.add(cType, 1);// 开始日期加一个月直到等于结束日期为止
                Date ss = c1.getTime();
                String str = sf.format(ss);
                list.add(str);
            }
            System.out.print(list);
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

    public static String formatDate(String date){
        String format = "yyyy-MM-dd";
        SimpleDateFormat sf = new SimpleDateFormat(format);
        String str = null;
        try {
            str = sf.format(sf.parse(date));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return str;
    }

    //比较两个日期大小
    public static int compare_date(String DATE1, String DATE2, String format) {
        DateFormat df = new SimpleDateFormat(format);
        try {
            Date dt1 = df.parse(DATE1);
            Date dt2 = df.parse(DATE2);
            if (dt1.getTime() > dt2.getTime()) {
                // System.out.println("dt1 在dt2前");
                return 1;
            } else if (dt1.getTime() < dt2.getTime()) {
                // System.out.println("dt1在dt2后");
                return -1;
            } else {
                return 0;
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return 0;
    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值