美文网首页
Java判断某时间是否在一个时间段

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

作者: GuangHui | 来源:发表于2017-06-24 12:10 被阅读681次

    用于限时循环的活动:

    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判断某时间是否在一个时间段

          本文链接:https://www.haomeiwen.com/subject/zxnccxtx.html