比如:上午:8:30 到 12:00 和 下午:14:30 到 18:30 为工作时间
写一个方法isWorkTime();
传入上面的4个参数,即:上午开始时间,上午结束时间,下午开始,下午结束时间,如果是工作时间返回0,不是工作时间返回1
写一个方法isWorkTime();
传入上面的4个参数,即:上午开始时间,上午结束时间,下午开始,下午结束时间,如果是工作时间返回0,不是工作时间返回1
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateCompare {
private static SimpleDateFormat df = new SimpleDateFormat("hh:mm");
private static String workTime[] = new String[]{"8:30","11:60","14:30","18:30"};
private static Date workDate[] = new Date[4];
static {
try {
workDate[0] = df.parse(workTime[0]);
workDate[1] = df.parse(workTime[1]);
workDate[2] = df.parse(workTime[2]);
workDate[3] = df.parse(workTime[3]);
} catch (ParseException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
isWorkTime(workTime[0],workTime[1],workTime[2],workTime[3]);
}
public static int isWorkTime(String s,String s2,String s3,String s4) {
//condition w0 <= s <= s2 <= w1, w2 <= s3 <= s4 <= w3
try {
Date date = df.parse(s);
Date date2 = df.parse(s2);
Date date3 = df.parse(s3);
Date date4 = df.parse(s4);
System.out.println(date.compareTo(date2)<=0);
//check am
if((workDate[0].compareTo(date) <=0)
&& (date.compareTo(date2)<=0)
&& (date2.compareTo(workDate[1])<=0)) {
//check pm
if((workDate[2].compareTo(date3)<=0)
&& (date.compareTo(date4)<=0)
&& (date4.compareTo(workDate[3])<=0)) {
return 0;
}
}
return 1;
} catch (ParseException e) {
e.printStackTrace();
}
return 1;
}
}
long time = sdf.parse(sdf.format(new Date())).getTime();
long time1 = sdf.parse(str1).getTime();
long time2 = sdf.parse(str2).getTime();
long time3 = sdf.parse(str3).getTime();
long time4 = sdf.parse(str4).getTime();
if(time>time1&&time<time2||time>time3&&time<time4)
return 0;
return 1;
顺便说下这个格式根据你传的参数来确定
方法应该是这样的
boolean isWorkTime(); //不传参数则判断当前是否是工作时间
boolean isWorkTime(Calendar cal);