• Java判断当前日期是否在周几到周几时间范围内


    public class demo {
        public static void main(String[] args) throws UnsupportedEncodingException {
            String stTime = "周六:10:10";
            String edTime = "周日:15:45";
            System.out.println(timeQuantum(stTime,edTime));
        }
        
        public static boolean  timeQuantum(String stTime,String edTime){
            Calendar cal = Calendar.getInstance(); // 获得一个日历
            SimpleDateFormat sdf = new  SimpleDateFormat("yyyy-MM-dd HH:mm");//时间格式
            Date nowDate = new Date();//当前时间
            String[] sdfSplit = sdf.format(nowDate).split(" ");//固定年月日为当前时间   只比较时间
            String[] weekDays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };//格式
            String[] stTimeSplit = stTime.split(":");//开始时间
            String[] edTimeSplit = edTime.split(":");//结束时间
            cal.setTime(nowDate);
            int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个星期中的某天。
            String nowDateWeek = weekDays[w];//当前时间星期几
            //如果开始时间大约结束时间就互换 如:周二 到周一 
            if(getIndex(stTimeSplit[0])>getIndex(edTimeSplit[0])){
                String temp = stTimeSplit[0];
                stTimeSplit[0] = edTimeSplit[0];
                edTimeSplit[0] = temp;
            }
            //判断当前时间 是否在时间段中
            if(getIndex(nowDateWeek) >= getIndex(stTimeSplit[0]) && getIndex(nowDateWeek) <= getIndex(edTimeSplit[0])){
                //是否为同一天
                if(stTimeSplit[0].equals(edTimeSplit[0])){
                    try {
                        Date stParse = sdf.parse(sdfSplit[0]+" "+stTimeSplit[1]+":"+stTimeSplit[2]);
                        Date edParse = sdf.parse(sdfSplit[0]+" "+edTimeSplit[1]+":"+edTimeSplit[2]);
                        //当前时间在时间段范围内
                        if(nowDate.getTime()>=stParse.getTime() && nowDate.getTime()<=edParse.getTime()){
                            return true;
                        }else{
                            return false;
                        }
                    } catch (ParseException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    //比较当前时间是否在此时间段内
                }else{//不是同一天
                    //当前星期几等于开始星期几 或者等于结束星期几
                    if(getIndex(nowDateWeek)==getIndex(stTimeSplit[0]) || getIndex(nowDateWeek)==getIndex(edTimeSplit[0])){
                        try {
                            Date stParse = sdf.parse(sdfSplit[0]+" "+stTimeSplit[1]+":"+stTimeSplit[2]);
                            Date edParse = sdf.parse(sdfSplit[0]+" "+edTimeSplit[1]+":"+edTimeSplit[2]);
                            //当前周几等于 开始周几
                            if(getIndex(nowDateWeek)==getIndex(stTimeSplit[0])){
                                if(nowDate.getTime()>=stParse.getTime()){
                                    return true;
                                }
                                return false;
                            }else{//当前周几等于 结束周几
                                if(nowDate.getTime()<=edParse.getTime()){
                                    return true;
                                }
                                return false;
                            }
                        } catch (ParseException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }else{//不等于,包括在中间 当前为周三 ,开始为周一结束为周五
                        return true;
                    }
                }
            }
            return false;
        }
        public static Integer getIndex(String week){
            String[] weekDays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };//格式
            Integer index = null;
            for(int i = 0 ;i<weekDays.length;i++){
                if(week.equals(weekDays[i])){
                    if(i == 0){//周日
                        return index = 7;
                    }
                    return index = i;
                }
            }
            return 0;
        }
    }

      

  • 相关阅读:
    C#通信学习(一)
    ms sql server 大批量导入
    PostgreSQL
    服务器性能指标有哪些
    C#一些需要注意的点(中级)
    JSON.parse与eval区别
    NDK编程中如何在C文件中打印调试信息
    Stack switching mechanism in a computer system
    Weex 相关文章收集
    JavaScript HTML DOM 元素(节点)
  • 原文地址:https://www.cnblogs.com/angel-devil/p/11906658.html
Copyright © 2020-2023  润新知