版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
需求:
判断在指定的时间段是否有重复的套餐订单
思路:
将日期的字符串类型转为数字类型,进行比较
指定时间 [start, end]
套餐订单开始结束时间: [s, e]
/*
* 如果有重复套餐, 有以下几种可能:
* ① 指定时间段与原套餐订单时间有交集 s<=start<e || s<end<=e
* ② 指定时间段是它的子集 s <= start & e >=end
*/
代码:
// start 和end为指定时间的首尾时间点, 且是标准日期格式: yyyy-MM-dd HH:mm:ss
public boolean checkPackageOrderExist(String start, String end) throws ParseException {
boolean flag = false;
String startTimeStr = "2019-06-01 00:00:00";
String endTimeStr = "2019-06-30 23:59:59";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long startTimeL = sdf.parse(startTimeStr).getTime();
long endTimeL = sdf.parse(endTimeStr).getTime();
long startL = sdf.parse(start).getTime();
long endL = sdf.parse(end).getTime();
if((startL >= startTimeL && startL < endTimeL) || (endL > startTimeL && endL <= endTimeL)
|| (startL <= startTimeL && endL >= endTimeL)){
flag = true;
break;
}
return flag;
}