【java】校验当前时间是否在规定的时间内
废话不多说直接贴代码。
我的日期格式是 8:00-22:00
要用的自己换下格式哈。
public class CheckClosingTimeUtil {
    /**
     * 校验当前时间是否在规定时间内
     * @param businessHours 某商店营业时间或者是别的
     * @return  true:在规定时间 false:未在规定时间
     */
    public static boolean checkClosingTime(String businessHours){
        if(StringUtils.isNotBlank(businessHours)){
            BulidBusinessHours bulidBusinessHours = new BulidBusinessHours(businessHours).invoke();
            long start = bulidBusinessHours.getStart();
            long end = bulidBusinessHours.getEnd();
            Calendar currentTime = Calendar.getInstance();
            long current = currentTime.getTimeInMillis();
            if(current>start && current<end){
                return true;
            }else{
                return false;
            }
        }
        return false;
    }
    /**
     * 校验当前时间是否在规定时间内2
     * @param businessHours 某商店营业时间或者是别的
     * @param current 单位;当前时间 - 毫秒级
     * @return
     */
    public static boolean checkClosingTime(String businessHours,long current){
        if(StringUtils.isNotBlank(businessHours)){
            BulidBusinessHours bulidBusinessHours = new BulidBusinessHours(businessHours).invoke();
            long start = bulidBusinessHours.getStart();
            long end = bulidBusinessHours.getEnd();
            if(current>start && current<end){
                return true;
            }else{
                return false;
            }
        }
        return false;
    }
    private static class BulidBusinessHours {
        private String businessHours;
        private long start;
        private long end;
        public BulidBusinessHours(String businessHours) {
            this.businessHours = businessHours;
        }
        public long getStart() {
            return start;
        }
        public long getEnd() {
            return end;
        }
        public BulidBusinessHours invoke() {
            List<String> businessTime = Arrays.asList(businessHours.split("-"));
            List<String> startBusinessTime = Arrays.asList(businessTime.get(0).split(":"));
            List<Integer> startTime = startBusinessTime.stream().map(e -> Integer.valueOf(e)).collect(Collectors.toList());
            List<String> endBusinessTime = Arrays.asList(businessTime.get(1).split(":"));
            List<Integer> endTime = endBusinessTime.stream().map(e -> Integer.valueOf(e)).collect(Collectors.toList());
            Calendar drugstoreStartTime = Calendar.getInstance();
            drugstoreStartTime.set(Calendar.HOUR_OF_DAY, startTime.get(0));
            drugstoreStartTime.set(Calendar.MINUTE, startTime.get(1));
            drugstoreStartTime.set(Calendar.SECOND, 0);
            start = drugstoreStartTime.getTimeInMillis();
            Calendar drugstoreEndTime = Calendar.getInstance();
            drugstoreEndTime.set(Calendar.HOUR_OF_DAY, endTime.get(0));
            drugstoreEndTime.set(Calendar.MINUTE, endTime.get(1));
            drugstoreEndTime.set(Calendar.SECOND, 0);
            end = drugstoreEndTime.getTimeInMillis();
            return this;
        }
    }
}
【java】校验当前时间是否在规定的时间内的更多相关文章
- 身份证校验,前台js校验,后台java校验
		js校验: var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内 ... 
- [Java]Java日期及时间库插件 -- Joda Time.
		来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用的都是JDK原生的时间处理API, 大家都知道Java原生的时间处 ... 
- java学习第13天( java获取当前时间,有关大数据的运算及精确数字运算,Date类)
		一 java获取当前时间 学习一个函数,得到当前时间的准确值 System.currectTimeMillis(). 可以得到以毫秒为单位的当前时间.它主要用于计算程序运行时间,long start= ... 
- 【转】JAVA 8 日期/时间(Date Time)API指南
		前言 本来想写下Java 8的日期/时间API,发现已经有篇不错的文章了,那就直接转载吧~ PS:主要内容没变,做了部分修改. 原文链接: journaldev 翻译: ImportNew.com - ... 
- Java最重要的21个技术点和知识点之JAVA多线程、时间处理、数据格式
		(四)Java最重要的21个技术点和知识点之JAVA多线程.时间处理.数据格式 写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能 ... 
- 【MySQL】Java对SQL时间类型的操作(获得当前、昨天、前年。。时间)
		Java获得当前时间 java.util.Date date = new java.util.Date(); Timestamp time = new Timestamp(date.getTime() ... 
- Java json设置时间格式,Jackson设置时间格式,json设置单引号
		Java json设置时间格式,Jackson设置时间格式,json设置单引号 >>>>>>>>>>>>>>> ... 
- JAVA中的时间操作
		java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ... 
- Java中日期时间API小结
		Java中为处理日期和时间提供了大量的API,确实有把一件简单的事情搞复杂的嫌疑,各种类:Date Time Timestamp Calendar...,但是如果能够看到时间处理的本质就可以轻松hol ... 
随机推荐
- 开始在Windows上开发Android
			介绍 鉴于您正在阅读这篇文章,您很可能已经知道android是什么了.可能.在科幻小说和电影中,机器人本质上是具有拟人化特征的机器人.还记得<星球大战>里的C-3PO吗?那<星际迷航 ... 
- [学习笔记] 树上倍增求LCA
			倍增这种东西,听起来挺高级,其实功能还没有线段树强大.线段树支持修改.查询,而倍增却不能支持修改,但是代码比线段树简单得多,而且当倍增这种思想被应用到树上时,它的价值就跟坐火箭一样,噌噌噌地往上涨. ... 
- linux 已放弃(吐核)  (core dumped) 问题分析
			在运行自己写的 C 多线程程序是,出现:已放弃(吐核) 问题. 出现这种问题一般是下面这几种情况: 1.内存越界 2.使用的非线程安全的函数 3.全局数据未加锁保护 4.非法指针 5.堆栈溢出 也就 ... 
- thinkphp6.0.x 反序列化详记(二)
			前言 接上文找第二条POP链. 环境配置 同上文 POP链构造 寻找__destruct方法 仍然是寻找__destruct,这次关注AbstractCache.php(/vendor/league/ ... 
- 手工实现docker的vxlan
			前几天了解了一下docker overlay的原理,然后一直想验证一下自己的理解是否正确,今天模仿docker手工搭建了一个overlay网络.先上拓扑图,其实和上次画的基本一样.我下面提到的另一台机 ... 
- java 图片相似度算法
			利用直方图原理实现图像内容相似度比较 ,作为笔记记录在随笔中. public class PhotoDigest { public static void main(String[] ... 
- .net 手动建DataTable 获取DataTable列名 修改DataTable 列的顺序
			//创建 表 DataTable tables = new DataTable(); //添加 创建 列 //第一列 DataColumn cums = new DataColumn(); cums. ... 
- linux下php安装php-kafka扩展和php-rdkafka扩展
			具体步骤: 1.安装librdkafka cd /usr/local/src #进入安装包存放目录 wget https://github.com/edenhill/librdkafka/archi ... 
- monolog记录日志
			<?php require_once 'vendor/autoload.php'; use Monolog\Formatter\LineFormatter; use Monolog\Logger ... 
- Python函数的定义和参数
			函数的初识: 以功能为导向,一个函数就是一个功能.随调随用. 优点: 减少代码重复性. 增强代码的可读性. 函数的结构: def function_name(): 函数体  def: 关键字,定义函 ... 
