首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java特定时间问题

问Java特定时间问题
EN

Stack Overflow用户
提问于 2015-08-19 10:43:26
回答 1查看 40关注 0票数 0

午夜过后的时间我有点小问题。我的代码如下所示:

代码语言:javascript
复制
if (timeActual.after(timeOpen) && timeActual.before(timeClose))

一切都很好,直到timeClose在24小时内24:00结束。在本例中,timeClose将如下所示: 00:01。这就是为什么第二个条件,如果声明将是错误的。有人知道线索吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-19 12:00:19

如果你只使用时间,你可以这样做:

代码语言:javascript
复制
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;
    }
}

所以你的情况应该是这样:

代码语言:javascript
复制
if (TimeComparator.after(timeActual, timeOpen) && TimeComparator.before(timeActual, timeClose))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32093259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档