`

Java时间判断:判断一个时间是否在一个时间段内

阅读更多

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

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

方法:

	/**
	 * 判断时间是否在时间段内
	 * 
	 * @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, 8));
		// 截取结束时间时分秒
		int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
		int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
		int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
		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;
		}
	}

 

1
0
分享到:
评论
6 楼 q77102902 2017-11-09  
4楼 精辟!  
5 楼 liuwencaia 2016-08-04  
// 当前时间小时数在开始时间和结束时间小时数之间 
        if (strDateH >= strDateBeginH && strDateH <= strDateEndH) { 
            return true; 
            // 当前时间小时数等于开始时间小时数,分钟数在开始和结束之间 
        }
4 楼 kingcs 2015-03-05  
	public static void main(String[] args) {
		System.out.println(compareDate(new Date(2015, 2, 1, 10, 20, 22), new Date(2015, 2, 1, 10, 20, 25),
				new Date(2015, 2, 1, 10, 20, 23)));

	}

	// 判断时间是否在时间段内
	public static boolean compareDate(Date start, Date end, Date date) {
		if (date.getTime() >= start.getTime() && date.getTime() <= end.getTime()) {
			return true;
		}
		return false;
	}

3 楼 kingcs 2015-03-05  
很简单啊,把时间都转成long型的就行了,几行代码就解决了。
2 楼 阿毛色色 2015-03-05  
直接用时间戳比较就行,不需要那么多判断
1 楼 jj356302304 2015-03-05  
/**
     * 判断date是否在指定的minDate和maxDate日期内,传递的格式为yyyy-MM-dd
     *
     * @param date 输入的日期
     * @param minDate 是否在指定的日期内最小日期
     * @param maxDate 是否在指定的日期内最大日期
     * @return true 在指定的区间内   false 不在指定的区间内
     * @throws BaseException
     */
    public static boolean isBetween(String date, String minDate, String maxDate)
            throws BaseException
    {
        try
        {
            minDate = str2YMD(minDate).replace("-", "");
            maxDate = str2YMD(maxDate).replace("-", "");
            date = str2YMD(date).replace("-", "");
            if (Tools.obj2Int(date) >= Tools.obj2Int(minDate)
                    && Tools.obj2Int(date) <= Tools.obj2Int(maxDate))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        catch (Exception e)
        {
            throw new BaseException("计算指定时间" + date + "是否在指定的范围" + minDate
                    + "," + maxDate + "时出现异常");
        }
    }

相关推荐

    java 判断两个时间段是否重叠的案例.docx

    java 判断两个时间段是否重叠的案例.docx

    Java 判断一个时间是否在另一个时间段内

    主要介绍了Java 判断一个时间是否在另一个时间段内的相关资料,需要的朋友可以参考下

    求一个时间是否在两组时间段交集内

    将2组时间段合并求交集,再判断一个时间是否在其中

    JAVA时间工具类(计算法定工作日工时等)

    JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...

    Java判断时间段内文件是否更新的方法

    主要介绍了Java判断时间段内文件是否更新的方法,通过实例形式讲述了定时器、类加载器及线程等方法实现判断文件更新的功能,具有一定的参考借鉴价值,需要的朋友可以参考下

    java 判断两个时间段是否重叠的案例

    主要介绍了java 判断两个时间段是否重叠的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    判断两个时间段的时间差

    java时间差代码,可以轻松判断两个时间段之间相差多少天

    Java 计算日期月差

    计算两日期之间的差,看看两日期之间能差几个月的问题

    表单校验时间段重叠问题

    有个统计时段的字段,需排除选择的时间范围不能与已有时间段重叠

    java 判断是否为质数

    判断是否为质数,最优化的运行效率,减少性能损耗。测试计算机的运算速度。java学习的入门基础,最优化计算时间

    java源码包2

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    通过指定的时间段获得整年、整月、整周整日、整小时的数据

    运用java1.8的LocalDateTime和TemporalAdjusters等方法,通过指定的时间段获得整年、整月、整周整日、整小时的数据,并且还可以根据月、周、日、小时进行细化分隔,绝对的可以运行。

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA服务端访问量与响应时间统计工具 与 过载保护工具

    一个服务器端程序的运行,少不了两个必须的工具。 一、访问量与响应时间统计工具。 1、能让你知道当前服务上的接口单位时间内访问量是多少,总的响应时间是多少 2、通过1里的数据,你能知道哪个接口反应慢,如果...

    java实现两个时间相差的年月日 (相差几年几天几日的结果)

    网上很多资源都没有输出结果是(相差几年几个月几天的代码)希望对大家有帮助 有不足地方 望大家多多指点

    java源码包4

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    求两个时间段内周六周日总天数

    【求两个时间段内周六周日总天数.php】 &lt;br&gt;很好的理解时间函数的代码,可借鉴。个人编写的一些小函数,喜欢的就留下吧

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

Global site tag (gtag.js) - Google Analytics