获得两个日期(字符串)之间的所有日期

在程序中有时候这样的情况就是获取时间段中的时间集合进行处理,这几天做了一个excel导出,根绝时间段查询生成不同的天数标题数据。
   
    相对来说比较准确。
   
    Java代码
   
    1./**
   
    2.     * 获得两个日期(字符串)之间的所有日期
   
    3.     *
   
    4.     * @param start_date
   
    5.     *             String 开始日期 EX:"20120101" 强制输入参数
   
    6.     * @param end_date
   
    7.     *             String 结束日期 EX:"20120102" 强制输入参数
   
    8.     * @return
   
    9.     */
   
    10.    public static List<String> getDatesBetween2Date(String start_date, String end_date) {
   
    11.        List<String> result = new ArrayList<String>();
   
    12.        try {
   
    13.            start_date = StringUtils.trim(start_date);
   
    14.            end_date = StringUtils.trim(end_date);
   
    15.            if (StringUtils.isEmpty(start_date) || StringUtils.isEmpty(end_date)) {
   
    16.                return result;
   
    17.            }
   
    18.
   
    19.            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
   
    20.            int recAfter = diffDate(sdf.parse(end_date), sdf.parse(start_date));
   
    21.            if (recAfter < 0) {
   
    22.                String temp = start_date;
   
    23.                start_date = end_date;
   
    24.                end_date = temp;
   
    25.                recAfter = -1 * recAfter;
   
    26.            }
   
    27.            result.add(start_date);
   
    28.            String tempStart_date = new String(start_date.getBytes("UTF-8"), "UTF-8");
   
    29.            while (recAfter > 0) {
   
    30.                tempStart_date = DateUtil.turnDate(tempStart_date, "yyyyMMdd", 1);
   
    31.                result.add(tempStart_date);
   
    32.                recAfter--;
   
    33.            }
   
    34.
   
    35.        }
   
    36.        catch (Exception e) {
   
    37.            e.printStackTrace();
   
    38.        }
   
    39.        return result;
   
    40.    }
   

    46.    public static String turnDate(String showDate, String format, int interDay) {
   
    47.        // 日期加指定天数
   
    48.        Calendar cal = Calendar.getInstance();
   
    49.        Date tempDate_001 = DateUtil.parseDate(showDate, format);
   
    50.        if (null == tempDate_001) {
   
    51.            return null;
   
    52.        }
   
    53.        cal.setTime(tempDate_001);
   
    54.        cal.add(Calendar.DAY_OF_MONTH, interDay);
   
    55.        String next = DateUtil.formatDate(cal.getTime(), format);
   
    56.        return next;
   
    57.    }
   
    /**
   
    * 获得两个日期(字符串)之间的所有日期
   
    *
   
    * @param start_date
   
    *             String 开始日期 EX:"20120101" 强制输入参数
   
    * @param end_date
   
    *             String 结束日期 EX:"20120102" 强制输入参数
   
    * @return
   
    */
   
    public static List<String> getDatesBetween2Date(String start_date, String end_date) {
   
    List<String> result = new ArrayList<String>();
   
    try {
   
    start_date = StringUtils.trim(start_date);
   
    end_date = StringUtils.trim(end_date);
   
    if (StringUtils.isEmpty(start_date) || StringUtils.isEmpty(end_date)) {
   
    return result;
   
    }
   
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
   
    int recAfter = diffDate(sdf.parse(end_date), sdf.parse(start_date));
   
    if (recAfter < 0) {
   
    String temp = start_date;
   
    start_date = end_date;
   
    end_date = temp;
   
    recAfter = -1 * recAfter;
   
    }
   
    result.add(start_date);
   
    String tempStart_date = new String(start_date.getBytes("UTF-8"), "UTF-8");
   
    while (recAfter > 0) {
   
    tempStart_date = DateUtil.turnDate(tempStart_date, "yyyyMMdd", 1);
   
    result.add(tempStart_date);
   
    recAfter--;
   
    }
   
    }
   
    catch (Exception e) {
   
    e.printStackTrace();
   
    }
   
    return result;
   
    }
   
    public static String turnDate(String showDate, String format, int interDay) {
   
    // 日期加指定天数
   
    Calendar cal = Calendar.getInstance();
   
    Date tempDate_001 = DateUtil.parseDate(showDate, format);
   
    if (null == tempDate_001) {
   
    return null;
   
    }
   
    cal.setTime(tempDate_001);
   
    cal.add(Calendar.DAY_OF_MONTH, interDay);
   
    String next = DateUtil.formatDate(cal.getTime(), format);
   
    return next;
   
    }
   
    写个main方法调用:
   
    Java代码
   
    1.System.out.println(DateUtil.getDatesBetween2Date("20120101", "20120104"));
   
    System.out.println(DateUtil.getDatesBetween2Date("20120101", "20120104"));
   
    返回的是一个 list集合:  20120101、 20120102 、 20120103、 20120101 这样的集合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值