判段当前时间在某个时间段中(HH:mm <currentTime < HH:mm)
package com;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class TestDemo {
private final static DateFormat sdf = new SimpleDateFormat("HH:mm");
private final static Map<String, String> tradeTime = new HashMap<String, String>() {
{
put("9:30", "10:00");
put("11:30", "12:00");
}
};
private final static Map<String, String> restTime = new HashMap<String, String>() {
{
put("18:00", "19:00");
put("20:00", "21:00");
}
};
private static Boolean judgeTime() throws ParseException {
Calendar cal = Calendar.getInstance();
if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY
||cal.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY) {
return isInMultiTimeZone(restTime);
}
return isInMultiTimeZone(tradeTime);
}
private static Boolean isInMultiTimeZone(Map<String, String> multiTime) throws ParseException {
for (Map.Entry<String, String> entry : tradeTime.entrySet()) {
if (isInTimeZone(getTimeLong(entry.getKey()), getTimeLong(entry.getValue()), getCurrentTime())) {
return true;
}
}
return false;
}
private static Boolean isInTimeZone(Long startTime, Long EndTime, Long currentTime) {
return startTime <= currentTime && currentTime <= EndTime;
}
private static Long getTimeLong(String timeStr) throws ParseException {
return sdf.parse(timeStr).getTime();
}
private static Long getCurrentTime() throws ParseException {
return getTimeLong(sdf.format(new Date()));
}
public static void main(String[] args) throws ParseException {
Boolean aBoolean = judgeTime();
System.out.println(aBoolean);
}
}