android 判断当前系统时间是否在特定的时间的段内 两种方式
方式一 :方法过时 不影响使用import android.text.format.Time;/*** 判断当前系统时间是否在指定时间的范围内** beginHour 开始小时,例如8* beginMin开始小时的分钟数,例如30* endHour结束小时,例如 20* endMin结束小时的分钟数,例如0* true表示在范围内, 否则false*/public stat.
·
方式一 :方法过时 不影响使用
import android.text.format.Time;
/**
* 判断当前系统时间是否在指定时间的范围内
*
* beginHour 开始小时,例如8
* beginMin 开始小时的分钟数,例如30
* endHour 结束小时,例如 20
* endMin 结束小时的分钟数,例如0
* true表示在范围内, 否则false
*/
public static boolean isCurrentInTimeScope(int beginHour, int beginMin, int endHour, int endMin){
boolean result = false;
final long aDayInMillis = 1000 * 60 * 60 *24;
final long currentTimeMillis = System.currentTimeMillis();
Time now = new Time();
now.set(currentTimeMillis);
Time startTime = new Time();
startTime.set(currentTimeMillis);
startTime.hour = beginHour;
startTime.minute = beginMin;
Time endTime = new Time();
endTime.set(currentTimeMillis);
endTime.hour = endHour;
endTime.minute = endMin;
if (!startTime.before(endTime)){
startTime.set(startTime.toMillis(true) - aDayInMillis);
result = !now.before(startTime) && !now.after(endTime); // startTime <= now <= endTime
Time startTimeInThisDay = new Time();
startTimeInThisDay.set(startTime.toMillis(true) + aDayInMillis);
if (!now.before(startTimeInThisDay)) {
result = true;
}
}else {
//普通情况(比如 8:00 - 18:00)
result = !now.before(startTime) && !now.after(endTime); // startTime <= now <= endTime
}
return result;
}
方式二:简便
public static boolean isCurrentInTimeScope2(){
boolean result = false;
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int minuteOfDay = hour * 60 + minute;// 从0:00分开是到目前为止的分钟数
final int startTime = 8 * 60;//起始时间的分钟数
final int endTime = 20 * 60;//结束时间的分钟数
if (minuteOfDay >= startTime && minuteOfDay <= endTime){
result = true;
}else {
result = false;
}
return result;
}
以上两种都可以添加到工具类中直接使用。
更多推荐
已为社区贡献5条内容
所有评论(0)