java 两个时间段中的日期和两个时间段中月份以及当前时间的前一周

/**
	 * 将时间段转换成list集合
	 * 
	 * @param dBegin
	 * @param dEnd
	 * @return
	 * @throws ParseException
	 */
	public static List<String> findDates(String dBegin, String dEnd) throws ParseException {
		// 日期工具类准备
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

		// 设置开始时间
		Calendar calBegin = Calendar.getInstance();
		calBegin.setTime(format.parse(dBegin));

		// 设置结束时间
		Calendar calEnd = Calendar.getInstance();
		calEnd.setTime(format.parse(dEnd));

		// 装返回的日期集合容器
		List<String> Datelist = new ArrayList<String>();

		// 每次循环给calBegin日期加一天,直到calBegin.getTime()时间等于dEnd
		while (format.parse(dEnd).after(calBegin.getTime())) {
			// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
			calBegin.add(Calendar.DAY_OF_MONTH, 1);
			Datelist.add(format.format(calBegin.getTime()));
		}
		Datelist.add(dBegin);
		List<String> list = new ArrayList<String>();
		// 将日期格式2019-01-21 转换成 20190121
		for (int i = 0; i < Datelist.size(); i++) {
			String date = Datelist.get(i);
			String day = date.substring(0, 4) + date.substring(5, 7) + date.substring(8) + "";
			list.add(day);
		}
		return list;
	}

	/**
	 * 获取两个时间段中的月份 则不包含2019-07月份
	 * 
	 * @param startDate
	 *            "2019-01-02"
	 * @param endDate
	 *            "2019-07-21"
	 * @return
	 * @throws ParseException
	 */
	public static List<String> getMonthBetween(String startDate, String endDate) 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(startDate));
		min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);

		max.setTime(sdf.parse(endDate));
		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);
		}
		// 将最后的月份删除
		String format = endDate.subSequence(0, 7) + "";
		if (result.contains(format)) {
			result.remove(format);
		}
		return result;
	}
	/**
	 * 获取当前时间的前一周的七天
	 * 格式:20190121
	 * @return
	 */
	public static List<String> getCurrentWeekDay() {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Calendar c = Calendar.getInstance();
		List<String> Datelist = new ArrayList<String>();

		c.setTime(new Date());

		for (int i = 0; i < 7; i++) {
			c.add(Calendar.DATE, -1);
			Date d = c.getTime();
			String day = format.format(d);
			Datelist.add(day);
		}

		List<String> list = new ArrayList<String>();
		// 将日期格式2019-01-21 转换成 20190121
		for (int i = 0; i < Datelist.size(); i++) {
			String date = Datelist.get(i);
			String day = date.substring(0, 4) + date.substring(5, 7) + date.substring(8) + "";
			list.add(day);
		}
		System.out.println("过去七天:" + list);
		return list;
	}

猜你喜欢

转载自blog.csdn.net/weixin_42228950/article/details/88057463