当前位置: 首页 > news >正文

java功能实现在某个时间范围之内输出true,不在某个范围输出false,时间精确到分钟

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DateTimeChecker {

    private static final Logger log = LoggerFactory.getLogger(DateTimeChecker.class);

    /**
     * 检查当前时间是否在指定的小时和分钟范围内。
     *
     * @param startHour 开始小时(包含)
     * @param startMinute 开始分钟(包含)
     * @param endHour 结束小时(包含)
     * @param endMinute 结束分钟(包含)
     * @return 在范围内返回true,否则返回false。如果输入无效则返回null。
     */
    public static Boolean checkDateTimeInRange(Integer startHour, Integer startMinute, Integer endHour, Integer endMinute) {
        // 检查输入有效性
        if (startHour == null || startMinute == null || endHour == null || endMinute == null 
                || startHour < 0 || startHour > 23 
                || startMinute < 0 || startMinute > 59
                || endHour < 0 || endHour > 23
                || endMinute < 0 || endMinute > 59
                || startHour > endHour || (startHour == endHour && startMinute > endMinute)) {
            return null;
        }
        try {
            // 获取当前日期
            Calendar calendar = Calendar.getInstance();
            int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
            int currentMinute = calendar.get(Calendar.MINUTE);
            
            return (currentHour > startHour || (currentHour == startHour && currentMinute >= startMinute))
                    && (currentHour < endHour || (currentHour == endHour && currentMinute <= endMinute));
        } catch (Exception e) {
            log.error("判断当前时间是否在指定范围内(精确到分钟),checkDateTimeInRange,异常", e);
        }
        return null;
    }

    public static void main(String[] args) {
        // 测试代码,检查当前时间是否在8点30分到10点45分之间
        Boolean result = checkDateTimeInRange(8, 30, 10, 45);
        System.out.println(result != null && result ? "当前时间在范围内" : "当前时间不在范围内");
    }
}
这段代码通过直接的条件判断来确保所有输入参数都不为null,同时也检查了小时和分钟的取值是否有效。这是一种简单且广泛支持的替代方案,不需要额外的库依赖。

http://www.lryc.cn/news/375440.html

相关文章:

  • macbook屏幕录制技巧,这2个方法请你收好
  • vue-loader
  • IO系列(十) -TCP 滑动窗口原理介绍(上)
  • IPython 使用技巧整理
  • Python 引入中文py文件
  • qt 实现模拟实际物体带速度的移动(水平、垂直、斜角度)——————附带完整代码
  • 驱动开发(三):内核层控制硬件层
  • 企业邮箱大附件无法上传?无法确认接收状态?这样解决就行
  • Kotlin 数据类(Data Class)
  • gridview自带编辑功能如何判断用户修改的值的合法性
  • 设计模式-结构型-06-桥接模式
  • 安泰电压放大器的选型原则是什么
  • 方法分享 |公网IP怎么指定非433端口实现https访问
  • vue实现拖拽元素;vuedraggable拖拽插件
  • Javascript介绍
  • 毕业答辩PPT:如何在短时间内高效准备?
  • 树结构与算法-杨辉三角形的两种实现
  • 【机器学习】智能创意工厂:机器学习驱动的AIGC,打造未来内容新生态
  • Python - 一个恶意脚本
  • SFNC —— 采集控制(四)
  • AUTOSAR学习
  • 区区微服务,何足挂齿?
  • 数据结构 ->反转链表
  • Unity基础(一)unity的下载与安装
  • TOP10!YashanDB斩获广东省优秀信创产品与解决方案双料荣誉
  • 基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真
  • 有趣且重要的JS知识合集(22)树相关的算法
  • 使用 Let’s Encrypt 生成免费 SSL 证书
  • 【电脑小白】装机从认识电脑部件开始
  • ssldump一键分析网络流量(KALI工具系列二十二)