必威体育Betway必威体育官网
当前位置:首页 > IT技术

判断时间是否在一个范围之内

时间:2019-06-18 06:40:00来源:IT技术作者:seo实验室小编阅读:87次「手机版」
 

时间范围

全文全为网上资料

需求:当时间在凌晨0点至0点5分之间程序不执行。

也就是实现判断当前时间点是否在00:00:00至00:05:00之间

方法:

java代码

  1. /** 
  2.  * 判断时间是否在时间段内 
  3.  *  
  4.  * @param date 
  5.  *            当前时间 yyyy-MM-dd HH:mm:ss 
  6.  * @param strDateBegin 
  7.  *            开始时间 00:00:00 
  8.  * @param strDateEnd 
  9.  *            结束时间 00:05:00 
  10.  * @return 
  11.  */  
  12. public static boolean isInDate(Date date, String strDateBegin,  
  13.         String strDateEnd) {  
  14.     simpledateformat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  15.     String strDate = sdf.format(date);  
  16.     // 截取当前时间时分秒  
  17.     int strDateH = integer.parseInt(strDate.substring(11, 13));  
  18.     int strDateM = Integer.parseInt(strDate.substring(14, 16));  
  19.     int strDateS = Integer.parseInt(strDate.substring(17, 19));  
  20.     // 截取开始时间时分秒  
  21.     int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));  
  22.     int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));  
  23.     int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));  
  24.     // 截取结束时间时分秒  
  25.     int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));  
  26.     int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));  
  27.     int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));  
  28.     if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {  
  29.         // 当前时间小时数在开始时间和结束时间小时数之间  
  30.         if (strDateH > strDateBeginH && strDateH < strDateEndH) {  
  31.             return true;  
  32.             // 当前时间小时数等于开始时间小时数,分钟数在开始和结束之间  
  33.         } else if (strDateH == strDateBeginH && strDateM >= strDateBeginM  
  34.                 && strDateM <= strDateEndM) {  
  35.             return true;  
  36.             // 当前时间小时数等于开始时间小时数,分钟数等于开始时间分钟数,秒数在开始和结束之间  
  37.         } else if (strDateH == strDateBeginH && strDateM == strDateBeginM  
  38.                 && strDateS >= strDateBeginS && strDateS <= strDateEndS) {  
  39.             return true;  
  40.         }  
  41.         // 当前时间小时数大等于开始时间小时数,等于结束时间小时数,分钟数小等于结束时间分钟数  
  42.         else if (strDateH >= strDateBeginH && strDateH == strDateEndH  
  43.                 && strDateM <= strDateEndM) {  
  44.             return true;  
  45.             // 当前时间小时数大等于开始时间小时数,等于结束时间小时数,分钟数等于结束时间分钟数,秒数小等于结束时间秒数  
  46.         } else if (strDateH >= strDateBeginH && strDateH == strDateEndH  
  47.                 && strDateM == strDateEndM && strDateS <= strDateEndS) {  
  48.             return true;  
  49.         } else {  
  50.             return false;  
  51.         }  
  52.     } else {  
  53.         return false;  
  54.     }  
  55. }  

判断某个时间是否是在条件时间的n天之内

正数表示在条件时间n天之后,负数表示在条件时间n天之前

  /**
     * 判断time是否在now的n天之内
     * @param time
     * @param now
     * @param n    正数表示在条件时间n天之后,负数表示在条件时间n天之前
     * @return
     */
    public static boolean belongDate(Date time, Date now, int n) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        calendar calendar = Calendar.getinstance();  //得到日历
        calendar.setTime(now);//把当前时间赋给日历
        calendar.add(Calendar.DAY_OF_MONTH, n);
        Date before7days = calendar.getTime();   //得到n前的时间
        if (before7days.getTime() < time.getTime()) {
            return true;
        } else {
            return false;
        }
    }
       //打印测试
        Date time  = stringToDate("2017-3-13");//string转为date
        Date now = new Date();//直接new对象,获取的是当前时间2017-3-16
        System.out.println(belongDate(time,now,-2));//2天前
        System.out.println(belongDate(time,now,2));//2天后
        System.out.println(belongDate(time,now,-7425

这里写图片描述

判断某个时间是否是在条件的起始时间与结束时间之内

/**
     * 判断time是否在from,to之内
     *
     * @param time 指定日期
     * @param from 开始日期
     * @param to   结束日期
     * @return
     */
    public static boolean belongCalendar(Date time, Date from, Date to) {
        Calendar date = Calendar.getInstance();
        date.setTime(time);

        Calendar after = Calendar.getInstance();
        after.setTime(from);

        Calendar before = Calendar.getInstance();
        before.setTime(to);

        if (date.after(after) && date.before(before)) {
            return true;
        } else {
            return false;
        }
    }
        //打印测试
        Date time1  = stringToDate("2017-3-11");
        Date time2 = stringToDate("2017-3-15");
        Date time3 = stringToDate("2017-3-17");
        Date from = stringToDate("2017-3-12");
        Date to= stringToDate("2017-3-16");
        System.out.println(belongCalendar(time1,from,to));
        System.out.println(belongCalendar(time2,from,to));
        System.out.println(belongCalendar(time3,from,31

这里写图片描述

判断给定时间与当前时间相差多少天

   public static long getdistanceDays(String date) {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

        long days = 0;
        try {
            Date time = df.parse(date);//String转Date
            Date now = new Date();//获取当前时间
            long time1 = time.getTime();
            long time2 = now.getTime();
            long diff = time1 - time2;
            days = diff / (1000 * 60 * 60 * 24);
        } catch (Exception e) {
            e.printstacktrace();
        }
        return days;//正数表示在当前时间之后,负数表

PS

以上方法涉及到的string转为date等时间日期转换问题。

欢迎查看我的以下两篇博客

1。Java Calendar日历与Date日期的相互转:

http://blog.csdn.net/demonliuhui/article/details/62423646

2。 Java Date与String的相互转换:

http://blog.csdn.net/demonliuhui/article/details/62423158

归纳3

/**

* 判断当前时间是否在[startTime, endTime]区间,注意时间格式要一致

* @param nowTime 当前时间

* @param startTime 开始时间

* @param endTime 结束时间

* @return

*/

public static boolean isEffectiveDate(Date nowTime, Date startTime, Date endTime) {

if (nowTime.getTime() == startTime.getTime()

        || nowTime.getTime() == endTime.getTime()) {

    return true;

}

Calendar date = Calendar.getInstance();

date.setTime(nowTime);

Calendar begin = Calendar.getInstance();

begin.setTime(startTime);

Calendar end = Calendar.getInstance();

end.setTime(endTime);

if (date.after(begin) && date.before(end)) {

    return true;

} else {

    return false;

}

}

/**

* 判断时间是否在[startTime, endTime]区间,注意时间格式要一致

* @param nowTime

* @param startTime

* @param endTime

* @return

*/

public static boolean isEffectiveDate(String nowTime, String startTime, String endTime,String dateFormat) {

DateFormat df = new SimpleDateFormat(dateFormat);

Date nowDate = null;

Date startDate = null;

Date endDate = null;

try {

nowDate = df.parse(nowTime);

startDate = df.parse(startTime);

endDate = df.parse(endTime);

} catch (ParseException e) {

e.printStackTrace();

}

if (nowDate.getTime() == startDate.getTime()

        || nowDate.getTime() == endDate.getTime()) {

    return true;

}

Calendar date = Calendar.getInstance();

date.setTime(nowDate);

Calendar begin = Calendar.getInstance();

begin.setTime(startDate);

Calendar end = Calendar.getInstance();

end.setTime(endDate);

if (date.after(begin) && date.before(end)) {

    return true;

} else {

    return false;

}

}

相关阅读

SEO优化时重复采集是否会被罚

 重复内容是SEO优化行业一直关注的问题,重复内容到底会不会被搜索引擎惩罚,这是一个被经常讨论的话题,百度通过对比来对内容采集站

怎么分辨网站是否成功

 什么样的网站才算一个成功的网站呢?每一个做过优化的站长们或许都考虑过这样的一个问题,到底什么样的网站才算是一个成功的网站,

网站权重需要时间慢慢积累

网站SEO优化在搜索引擎上的排名是主要是由网站的权重值来决定的,还有就是客户的用户行为即网站的浏览量,这些东西并不是一朝一夕所

怎么判断网站流量不是刷来的

经常有小伙伴们迷惑,别人的网站就一个模板网站,居然有那么多的流量,而且还是新站,所以百思不得其解。

怎么判断一个网站的用户体验好坏

百度搜索引擎的算法是比较严谨而机密的,从程序的角度来分析,用户体验不是一种感觉,而是一种数据,那么百度如何获取网站的用户体验数据

分享到:

栏目导航

推荐阅读

热门阅读