根据到期时间,显示剩余多少天到期,或者是显示已经过期多少天
查询条件条件为:
通过当前时间————当前时间加90天的区间,到期的条件
WHERE tn.expiry_time
BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 3 MONTH)
通过当前时间 减去90天的信息
WHERE DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= DATE(expiry_time)
当前时间大于等于到期时间
CURDATE() >= DATE(tn.expiry_time) xml里面的 >= 是 >;=
当前时间小于等于到期时间
CURDATE() <= DATE(tn.expiry_time) xml里面的 <= 是 <;=
**
获取过期时间差,并转换格式
**
/**
* 获取过期时间差,并转换格式
* @param list
* @return
*/
public List<String> sortL(List<TUserQualification> list){
List<Long> list1 = new ArrayList<Long>();
for (TUserQualification i : list) {
list1.add(i.getExpiry_time().getTime()-(new Date()).getTime());
}
List<String> list2 = new ArrayList<String>();
for (Long n : list1) {
int day=(int) (n/86400000);long exDay=n%86400000;//天
//int hour=(int) (exDay/3600000);long exHour=n%3600000;//小时
//int m=(int) (exHour/60000);long exM=n%60000;//分
//int s=(int) (exM/1000);//秒
if(day<0){
list2.add((day+"天").substring(1));//去掉前面的负号
}else{
list2.add((day+"天"));
}
}
return list2;
}
将得到的时间差在控制层方法里面进行遍历并设置进去
List<String> list2=sortL(listQualification);//括号里面是调用方法获取的集合
for(int i=0;i<list2.size();i++){
listQualification.get(i).setCertificate_no(list2.get(i));//将剩余时间设置进去
}
model.addAttribute("list", listQualification);
model.addAttribute("list2", list2);