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); }}}