Last active
August 29, 2015 14:27
-
-
Save syhily/752d4d77b7a4930731a6 to your computer and use it in GitHub Desktop.
A simple util used to test interval based on joda-time
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.joda.time.LocalTime; | |
/** | |
* Title: LocalTimeUtils <br> | |
* Description: A tiny time utils based on joda-time<br> | |
*/ | |
public class LocalTimeUtils { | |
private LocalTimeUtils() { | |
} | |
/** | |
* 查询时间是否介于某个时间区间内 | |
* | |
* @param queryTime 查询时间 | |
* @param startTime 开始时间 | |
* @param endTime 结束时间 | |
*/ | |
public static boolean isContained(LocalTime queryTime, LocalTime startTime, LocalTime endTime) { | |
if (startTime.isAfter(endTime)) { | |
throw new IllegalArgumentException("查询时间异常,起始时间不能大于截止时间。"); | |
} | |
return (queryTime.isAfter(startTime) && queryTime.isBefore(endTime)); | |
} | |
/** | |
* 查询时间是否介于从某个时间开始后的指定间隔分钟内 | |
* | |
* @param queryTime 查询时间 | |
* @param startTime 开始时间 | |
* @param durationMinutes 间隔分钟 | |
*/ | |
public static boolean isContained(LocalTime queryTime, LocalTime startTime, Integer durationMinutes) { | |
LocalTime endTime = startTime.plusMinutes(durationMinutes); | |
// 隔天间隔 | |
if (startTime.isAfter(endTime)) { | |
return isContained(queryTime, startTime, LocalTime.parse("23:59:59")) || | |
isContained(queryTime, LocalTime.parse("00:00:00"), endTime); | |
} else { | |
return isContained(queryTime, startTime, endTime); | |
} | |
} | |
/** | |
* 查询当前系统时间是否介于从某个时间开始后的指定间隔分钟内 | |
* | |
* @param startTime 开始时间 | |
* @param durationMinutes 间隔分钟 | |
*/ | |
public static boolean isContained(LocalTime startTime, Integer durationMinutes) { | |
return isContained(LocalTime.now(), startTime, durationMinutes); | |
} | |
/** | |
* 查询当前系统时间是否介于从某个时间开始后的指定间隔分钟内 | |
* | |
* @param startTime 开始时间 | |
* @param durationMinutes 间隔分钟 | |
*/ | |
public static boolean isContained(String startTime, String durationMinutes) { | |
return isContained(LocalTime.parse(startTime), Integer.parseInt(durationMinutes)); | |
} | |
public static boolean isNotContained(String startTime, String durationMinutes) { | |
return !isContained(startTime, durationMinutes); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment