1. 需求分析
本文分享一个自定义的时间工具类方法,判断当前时间是否在指定时间段以内,如果不在该时间范围内,返回true,否则返回false。
2.应用场景
判断当前时间是否在日期2024-04-25(date
参数传值)中的10点(time
传值10)到12点(interval
传值2)之间,如果不在,返回true,否则返回false。
2. 代码实现
public static boolean isLegalTime(Date date, int time, int interval){
Calendar c = Calendar.getInstance(); // 创建一个Calendar对象c,用来操作日期和时间。
c.setTime(date); // 将传入的Date对象设置为Calendar对象c的时间
c.set(Calendar.HOUR_OF_DAY,time); // 将Calendar对象c的小时部分设置为传入的time值。Calendar.HOUR_OF_DAY表示一天中的小时,24小时制。
Long start = c.getTime().getTime(); // 获取设置后的时间并转换为毫秒数,存储在start变量中。getTime()方法返回一个Date对象,然后再调用getTime()方法获取该对象表示的时间的毫秒数。
Long now = new Date().getTime(); // 获取当前时间的毫秒数,存储在now变量中。new Date().getTime()创建一个新的Date对象并获取其毫秒数。
c.add(Calendar.HOUR_OF_DAY,interval); // 将Calendar对象c的时间增加interval个小时。
Long end = c.getTime().getTime(); // 获取增加2个小时后的时间并转换为毫秒数,存储在end变量中。
return now>=start && now<=end; // 返回一个布尔值,判断当前时间是否在给定日期和时间范围内。如果当前时间不在start和end之间,则返回true,否则返回false。
}