/**
* 将时间段转换成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;
}
java 两个时间段中的日期和两个时间段中月份以及当前时间的前一周
猜你喜欢
转载自blog.csdn.net/weixin_42228950/article/details/88057463
今日推荐
周排行