Java查询近一月时间补0,mysql,oracle通用

JDK1.6

工具类

1.传入两个时候段,开始时间,结束时间。获取近一月的日期。

public static List<String> findDates(String dStart, String dEnd){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<String> dates = new ArrayList();
try {
Date startDate = sdf.parse(dStart);
Date endDate = sdf.parse(dEnd);
dates.add(sdf.format(startDate));
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(startDate);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(endDate);
// 测试此日期是否在指定日期之后
while (endDate.after(calBegin.getTime())) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin.add(Calendar.DAY_OF_MONTH, 1);
dates.add(sdf.format(calBegin.getTime()));
}
}catch (Exception e){
e.printStackTrace();
}
return dates;
}

2.比较两个集合进行排序

调用工具类 重要获取近一个月的时间段

List<String> dates = DateUtil.findDates(开始时间,结束时间);

假如你的业务集合为List<NearlyAMonth> list;

返回 ist = compareTime(list2, dates);

比较方法

 public List<NearlyAMonth> compareTime(List<NearlyAMonth> nearlyAMonth,List<String> dates){

final List<String> list=new ArrayList();
for(NearlyAMonth mm: nearlyAMonth){
list.add(mm.getTime());
};
for(String date: dates){
if(!list.contains(date)){
NearlyAMonth near = new NearlyAMonth();
near.setTime(date);
nearlyAMonth.add(near);
}
}
Collections.sort(nearlyAMonth, new Comparator<NearlyAMonth>() {
@Override
public int compare(NearlyAMonth o1, NearlyAMonth o2) {
if(o1.getTime().compareTo(o2.getTime())==0){
return -1;
}
return o1.getTime().compareTo(o2.getTime());
}
});
return nearlyAMonth;

成功实例

注:JDK1.8中可以用特性 比较添加

public List<NearlyAMonth> compareTime(List<NearlyAMonth> nearlyAMonth,List<String> dates){
List<String> list=new ArrayList<>();
nearlyAMonth.forEach(item->list.add(item.getTime()));
dates.forEach(item->{
if(!list.contains(item)){
NearlyAMonth nearly= new NearlyAMonth();
nearly.setTime(item);
nearlyAMonth.add(statistics);
}
});
Collections.sort(coStatistics, new Comparator<CoStatistics>() {
@Override
public int compare(CoStatistics o1, CoStatistics o2) {
if(o1.getTime().compareTo(o2.getTime())==0){
return -1;
}
return o1.getTime().compareTo(o2.getTime());
}
});
return nearlyAMonth;
}

猜你喜欢

转载自www.cnblogs.com/wsycoo/p/12049415.html