欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 对于业务中的一些生效时间处理理解

对于业务中的一些生效时间处理理解

2024/11/30 12:28:23 来源:https://blog.csdn.net/weixin_44050153/article/details/140044730  浏览:    关键词:对于业务中的一些生效时间处理理解

在业务中常会遇到对于一些事件、规则等等有设置生效时间,它们无非也就两种大类型

  • 时间是具体的时间,比如(2024-06-28 10:00:00到 2024-06-29 20:00:00)

这种类型可以采取的方式有很多,比如可以直接转换为时间戳比较

方法:

  1. 前端传值类型 yyyy-mm-dd 和 hh:mm:ss

  2. 数据库类型选用Date

  3. 类型转换

        /*** 将日期字符串转换成日期对象* @param yyyyMMdd 格式是yyyy-mm-dd的字符串* @param hhmmss 格式是hh:mm:ss的字符串* @return*/public static Date converToDate(String yyyyMMdd, String hhmmss){String[] days = yyyyMMdd.split("-");String[] time = hhmmss.split(":");LocalDateTime localDateTime = LocalDateTime.of(Integer.parseInt(days[0]), Integer.valueOf(days[1]), Integer.parseInt(days[2]),Integer.parseInt(time[0]), Integer.parseInt(time[1]), Integer.parseInt(time[2]));Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());return date;}
  4. 生效时间判断,判断当前时间是否在时效内

    直接转换为时间戳进行判断即可

  • 时间是一天中的某个时刻,比如 周一至周五的09:00 到 17:00

这种类型处理起来相对比较复杂,需要对周几和时间段单独判断

  1. 前端传值类型为(1,2,3)表示周一周二周三 和 hh:mm

  2. 数据库用两个字符类型存储

  3. 判断是否处于周内时间段

    /*** 判断当前日期是否在指定的日期范围内* @param days 以逗号分隔,(1,2,3,4,5) = 周一至周五* @return*/public static boolean judgeDay(String days){// 获取当前日期LocalDate today = LocalDate.now();// 获取当前星期几DayOfWeek dayOfWeek = today.getDayOfWeek();int value = dayOfWeek.getValue();return days.contains(String.valueOf(value));}
    
  4. 判断当前时间是否处于合法时间段内

        /*** 判断当前时间是否处于开始时间和结束时间之间* 1.获取开始时间S、结束时间E、当前时间N* 2.如果S<E,直接判断* 3.如果S>E,则E=E+24,如果N<S,则N+=24* 4.继续判断* @param startTime hh:ss* @param endTime hh:ss* @return*/public static boolean validateTime(String startTime,String endTime){Date date = new Date();int hours = date.getHours();int minutes = date.getMinutes();int nowTime = hours * 100 + minutes;int sTime = converTime(startTime);int eTime = converTime(endTime);if(sTime <= eTime){return sTime <= nowTime && nowTime <= eTime;}else{eTime += 2400;if(nowTime < sTime){nowTime += 2400;}return sTime <= nowTime && nowTime <= eTime;}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com