import Java.text.ParseException;
import java.text.SimpleDateFormat;
public class DateTest {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(DateTest.isInTime("20:00-01:00", "01:00"));
System.out.println(DateTest.isInTime("20:00-01:00", "00:00"));
System.out.println(DateTest.isInTime("20:00-01:00", "03:00"));
System.out.println();
System.out.println(DateTest.isInTime("20:00-23:00", "03:00"));
System.out.println(DateTest.isInTime("20:00-23:00", "22:00"));
System.out.println(DateTest.isInTime("20:00-23:00", "18:00"));
System.out.println(DateTest.isInTime("20:00-23:00", "20:00"));
System.out.println(DateTest.isInTime("20:00-23:00", "23:00"));
}
/**
* 判断某一时间是否在一个区间内
*
* @param sourceTime
* 时间区间,半闭合,如[10:00-20:00)
* @param curTime
* 需要判断的时间 如10:00
* @return
* @throws IllegalArgumentException
*/
public static boolean isInTime(String sourceTime, String curTime) {
if (sourceTime == null || !sourceTime.contains("-") || !sourceTime.contains(":")) {
throw new IllegalArgumentException("Illegal Argument arg:" + sourceTime);
}
if (curTime == null || !curTime.contains(":")) {
throw new IllegalArgumentException("Illegal Argument arg:" + curTime);
}
String[] args = sourceTime.split("-");
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
try {
long now = sdf.parse(curTime).getTime();
long start = sdf.parse(args[0]).getTime();
long end = sdf.parse(args[1]).getTime();
if (args[1].equals("00:00")) {
args[1] = "24:00";
}
if (end < start) {
if (now >= end && now < start) {
return false;
} else {
return true;
}
}
else {
if (now >= start && now < end) {
return true;
} else {
return false;
}
}
} catch (ParseException e) {
e.printStackTrace();
throw new IllegalArgumentException("Illegal Argument arg:" + sourceTime);
}
}
}
Java判断某时间是否在一个时间段
最新推荐文章于 2024-07-27 04:46:48 发布