免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2699 | 回复: 1
打印 上一主题 下一主题

Java判断一个时间是否在另一个时间段内 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-10-11 16:23 |只看该作者 |倒序浏览

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

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

  方法:

  Java代码 :

  /**

  * 判断时间是否在时间段内 *

  * @param date

  * 当前时间 yyyy-MM-dd HH:mm:ss

  * @param strDateBegin

  * 开始时间 00:00:00

  * @param strDateEnd

  * 结束时间 00:05:00

  * @return

  */

  public static boolean isInDate(Date date, String strDateBegin,

  String strDateEnd) {

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss";

  String strDate = sdf.format(date);

  // 截取当前时间时分秒

  int strDateH = Integer.parseInt(strDate.substring(11, 13));

  int strDateM = Integer.parseInt(strDate.substring(14, 16));

  int strDateS = Integer.parseInt(strDate.substring(17, 19));

  // 截取开始时间时分秒

  int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));

  int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));

  int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, );

  // 截取结束时间时分秒

  int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));

  int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));

  int strDateEndS = Integer.parseInt(strDateEnd.substring(6, );

  if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {

  // 当前时间小时数在开始时间和结束时间小时数之间

  if (strDateH > strDateBeginH && strDateH < strDateEndH) {

  return true;

  // 当前时间小时数等于开始时间小时数,分钟数在开始和结束之间

  } else if (strDateH == strDateBeginH && strDateM >= strDateBeginM

  && strDateM <= strDateEndM) {

  return true;

  // 当前时间小时数等于开始时间小时数,分钟数等于开始时间分钟数,秒数在开始和结束之间

  } else if (strDateH == strDateBeginH && strDateM == strDateBeginM

  && strDateS >= strDateBeginS && strDateS <= strDateEndS) {

  return true;

  }

  // 当前时间小时数大等于开始时间小时数,等于结束时间小时数,分钟数小等于结束时间分钟数

  else if (strDateH >= strDateBeginH && strDateH == strDateEndH

  && strDateM <= strDateEndM) {

  return true;

  // 当前时间小时数大等于开始时间小时数,等于结束时间小时数,分钟数等于结束时间分钟数,秒数小等于结束时间秒数

  } else if (strDateH >= strDateBeginH && strDateH == strDateEndH

  && strDateM == strDateEndM && strDateS <= strDateEndS) {

  return true;

  } else {

  return false;

  }

  } else {

  return false;

  }

  }


论坛徽章:
52
码神
日期:2017-03-28 10:27:10综合交流区版块每日发帖之星
日期:2015-10-11 06:20:00综合交流区版块每日发帖之星
日期:2015-09-28 06:20:00综合交流区版块每日发帖之星
日期:2015-09-22 06:20:00每日论坛发贴之星
日期:2015-09-12 06:20:00综合交流区版块每日发帖之星
日期:2015-09-12 06:20:00综合交流区版块每日发帖之星
日期:2015-09-08 06:20:00综合交流区版块每日发帖之星
日期:2015-09-05 06:20:00综合交流区版块每日发帖之星
日期:2015-09-04 06:20:002015亚冠之德黑兰石油
日期:2015-09-01 10:41:53每日论坛发贴之星
日期:2015-10-11 06:20:00综合交流区版块每日发帖之星
日期:2015-10-12 06:20:00
2 [报告]
发表于 2016-10-12 15:15 |只看该作者
回复 1# 凯哥学堂

       if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {

      return true;

  } else {

      return false;

  }



这样应该就可以了吧?

为什么中间要判断那么多?

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP