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时间换算(BJU转UTC)
UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。
617 0
java时间换算(BJU转UTC)
|
Java
Java实现拼图小游戏(7)—— 作弊码和判断胜利
当我们好不容易把拼图复原了,但是一点提示也没有,完全看不出来是成功了,那么我们就需要有判断胜利的功能去弹出“成功”类的图片,以便于玩家选择是重新开始还是退出小游戏
659 0
Java实现拼图小游戏(7)—— 作弊码和判断胜利
|
Java
java判断当前时间是否在某个时间区间内(可精确到毫秒)
java判断当前时间是否在某个时间区间内(可精确到毫秒)
1259 0
java判断当前时间是否在某个时间区间内(可精确到毫秒)
|
存储 算法 Java
Java实现有环的单向链表,并判断单向链表是否有环
有一个单向链表,链表当中有可能出现环,就像下图这样。我们如何判断一个单向链表是否有环呢?
|
算法 搜索推荐 Java
线性时间选择(Top K)问题(Java)
线性时间选择(Top K)问题(Java)
555 0
线性时间选择(Top K)问题(Java)
Java中判断字符串是否为空
Java中判断字符串是否为空的几种方式
581 0
Java中判断字符串是否为空
java获取时间间隔,获取当天每隔15分钟的时间
Java开发中日常遇到的关于时间的问题
java获取时间间隔,获取当天每隔15分钟的时间
|
Java 程序员
Java中如何处理时间--Date类
在实际业务中,总会碰到关于时间的问题,例如收集当年的第一季度的数据。第一季度也就是当年的一月一日到三月三十一日。如何处理时间的逻辑,如果用字符串去处理显然不可以,Java有专门的处理时间的类,在此记录一下。Date 类有如下两个构造方法。Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用该构造方法创建的对象可以获取本地的当前时间。
377 0
Java中如何处理时间--Date类
|
Java Spring
java中判断集合是否为空
最近接触集合比较多,经常对于集合是否为空做判断,目前了解的有三种方法,所以记录一下。
1245 0
java中判断集合是否为空