一个根据时间段获取时间的集合

     在程序中有时候这样的情况就是获取时间段中的时间集合进行处理,这几天做了一个excel导出,根绝时间段查询生成不同的天数标题数据。

 

       相对来说比较准确。

 

 

 

/**
	 * 获得两个日期(字符串)之间的所有日期
	 * 
	 * @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方法调用:

 

 

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、付费专栏及课程。

余额充值