Skip to content

Instantly share code, notes, and snippets.

@syhily
Last active August 29, 2015 14:27
Show Gist options
  • Save syhily/752d4d77b7a4930731a6 to your computer and use it in GitHub Desktop.
Save syhily/752d4d77b7a4930731a6 to your computer and use it in GitHub Desktop.
A simple util used to test interval based on joda-time
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