可以使用beforeafter方法来判断一个Date类型的时间是否在一个时间区间内。以下是一个示例代码:

import java.util.Date;

public class TimeRangeChecker {
    public static boolean isWithinTimeRange(Date time, Date startTime, Date endTime) {
        if (time.equals(startTime) || time.equals(endTime)) {
            return true;
        }
        return time.after(startTime) && time.before(endTime);
    }

    public static void main(String[] args) {
        Date startTime = new Date(2021, 1, 1, 9, 0, 0); // 开始时间
        Date endTime = new Date(2021, 1, 1, 18, 0, 0); // 结束时间

        Date time1 = new Date(2021, 1, 1, 10, 0, 0); // 在区间内
        Date time2 = new Date(2021, 1, 1, 8, 0, 0); // 在区间外
        Date time3 = new Date(2021, 1, 1, 18, 0, 0); // 在区间内

        System.out.println(isWithinTimeRange(time1, startTime, endTime)); // 输出:true
        System.out.println(isWithinTimeRange(time2, startTime, endTime)); // 输出:false
        System.out.println(isWithinTimeRange(time3, startTime, endTime)); // 输出:true
    }
}

在上面的示例代码中,isWithinTimeRange方法接收一个time参数表示待判断的时间,一个startTime参数表示时间区间的开始时间,一个endTime参数表示时间区间的结束时间。方法首先判断time是否等于startTimeendTime,如果是则直接返回true。否则,通过afterbefore方法判断time是否在startTimeendTime之间。如果满足条件则返回true,否则返回false

main方法中,我们创建了几个测试用例来验证isWithinTimeRange方法的正确性。可以看到,对于在时间区间内的时间,方法返回true,对于在时间区间外的时间,方法返回false

Java 判断时间是否在时间区间内(包含开始结束时间)

原文地址: https://www.cveoy.top/t/topic/o8YB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录