Java判断某时间是否在一个时间段

简介: Java判断某时间是否在一个时间段

用于限时循环的活动:

public class TestDate
{
    public static void main(String[] args)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        String strDate = sdf.format(date);
        // 截取当前时间时分
        int strDateH = Integer.parseInt(strDate.substring(11, 13));
        int strDateM = Integer.parseInt(strDate.substring(14, 16));
        String curTime = strDateH+":"+strDateM;
        System.out.println(curTime);
        String sourceTime ="09:00-23:00";
        boolean inTime = isInTime(sourceTime, curTime);
        System.out.println(inTime);
    }
    /** 
     * 判断某一时间是否在一个区间内 
     *  
     * @param sourceTime 
     *            时间区间,半闭合,如[10:00-20:00) 
     * @param curTime 
     *            需要判断的时间 如10:00 
     * @return  
     * @throws IllegalArgumentException 
     */  
    public static boolean isInTime(String sourceTime, String curTime) {  
        if (sourceTime == null || !sourceTime.contains("-") || !sourceTime.contains(":")) {  
            throw new IllegalArgumentException("Illegal Argument arg:" + sourceTime);  
        }  
        if (curTime == null || !curTime.contains(":")) {  
            throw new IllegalArgumentException("Illegal Argument arg:" + curTime);  
        }  
        String[] args = sourceTime.split("-");  
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");  
        try {  
            long now = sdf.parse(curTime).getTime();  
            long start = sdf.parse(args[0]).getTime();  
            long end = sdf.parse(args[1]).getTime();  
            if (args[1].equals("00:00")) {  
                args[1] = "24:00";  
            }  
            if (end < start) {  
                if (now >= end && now < start) {  
                    return false;  
                } else {  
                    return true;  
                }  
            }   
            else {  
                if (now >= start && now < end) {  
                    return true;  
                } else {  
                    return false;  
                }  
            }  
        } catch (ParseException e) {  
            e.printStackTrace();  
            throw new IllegalArgumentException("Illegal Argument arg:" + sourceTime);  
        }  
    } 
}


相关文章
|
Java 数据安全/隐私保护
【Java用法】java使用javax.mail读取邮箱,SpringBoot javax.mail获取邮件内容,根据时间段筛选邮件,内附代码,拿来即用
【Java用法】java使用javax.mail读取邮箱,SpringBoot javax.mail获取邮件内容,根据时间段筛选邮件,内附代码,拿来即用
298 0
java 把一个时间段中的节假日和周末过滤掉,获得一个或多个时间段
工作中遇到这种需求了,就写了一个方法,测试了几种情况都没有问题
|
存储 Java
java 计算多个时间段中重复的天数
工作中遇到这个需求,自己写了一下,测试了几种情况都没有问题。 这里的时间段我是用的map存储的,map里面是一个key为st的开始时间,一个key为et的结束时间。
|
Java
java时间换算(BJU转UTC)
UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。
299 0
java时间换算(BJU转UTC)
|
Java
Java实现拼图小游戏(7)—— 作弊码和判断胜利
当我们好不容易把拼图复原了,但是一点提示也没有,完全看不出来是成功了,那么我们就需要有判断胜利的功能去弹出“成功”类的图片,以便于玩家选择是重新开始还是退出小游戏
307 0
Java实现拼图小游戏(7)—— 作弊码和判断胜利
|
Java
java判断当前时间是否在某个时间区间内(可精确到毫秒)
java判断当前时间是否在某个时间区间内(可精确到毫秒)
847 0
java判断当前时间是否在某个时间区间内(可精确到毫秒)
|
存储 算法 Java
Java实现有环的单向链表,并判断单向链表是否有环
有一个单向链表,链表当中有可能出现环,就像下图这样。我们如何判断一个单向链表是否有环呢?
|
算法 搜索推荐 Java
线性时间选择(Top K)问题(Java)
线性时间选择(Top K)问题(Java)
255 0
线性时间选择(Top K)问题(Java)
Java中判断字符串是否为空
Java中判断字符串是否为空的几种方式
270 0
Java中判断字符串是否为空
java获取时间间隔,获取当天每隔15分钟的时间
Java开发中日常遇到的关于时间的问题
java获取时间间隔,获取当天每隔15分钟的时间