两个日期格式字符串比较大小

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xinyuezitang/article/details/91425212

需求:

判断在指定的时间段是否有重复的套餐订单

思路:

将日期的字符串类型转为数字类型,进行比较
指定时间 [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;
}

猜你喜欢

转载自blog.csdn.net/xinyuezitang/article/details/91425212