午夜过后的时间我有点小问题。我的代码如下所示:
if (timeActual.after(timeOpen) && timeActual.before(timeClose))一切都很好,直到timeClose在24小时内24:00结束。在本例中,timeClose将如下所示: 00:01。这就是为什么第二个条件,如果声明将是错误的。有人知道线索吗?
发布于 2015-08-19 12:00:19
如果你只使用时间,你可以这样做:
public class TimeComparator {
private static final long DIVISOR = 24 * 60 * 60 * 1000L;
public static int compare(Time t1, Time t2) {
int v1 = (int)(t1.toMillis(true) % DIVISOR),
v2 = (int)(t2.toMillis(true) % DIVISOR);
return v1 - v2;
}
public static boolean before(Time t1, Time t2) {
return compare(t1, t2) < 0;
}
public static boolean equals(Time t1, Time t2) {
return compare(t1, t2) == 0;
}
public static boolean after(Time t1, Time t2) {
return compare(t1, t2) > 0;
}
}所以你的情况应该是这样:
if (TimeComparator.after(timeActual, timeOpen) && TimeComparator.before(timeActual, timeClose))https://stackoverflow.com/questions/32093259
复制相似问题