首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Joda LocalTime子午线解析

Joda LocalTime子午线解析
EN

Stack Overflow用户
提问于 2015-07-15 11:42:07
回答 1查看 175关注 0票数 1

当我使用08:00 AM作为startTime,使用09:00 AM作为endTime时,则if语句工作得很好

代码语言:javascript
复制
LocalTime selected = new LocalTime(hourOfDay, minute);
if (selected.isAfter(startTime) && selected.isBefore(endTime)) {
    // doing some work
}

但是,每当我使用11:00 PM作为startTime,使用02:00 AM作为endTime时,我的if语句就无法工作。

代码语言:javascript
复制
LocalTime startTime = LocalTime.parse("11:00 PM", DateTimeFormat.forPattern("KK:mm a"));
LocalTime endTime = LocalTime.parse("02:00 AM", DateTimeFormat.forPattern("KK:mm a"));

LocalTime selected = new LocalTime(hourOfDay, minute);
if (selected.isAfter(startTime) && selected.isBefore(endTime)) {
    // doing some work
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-15 11:52:22

在第二个例子中,您的startTime大于您的endTime。不能有超过晚上11点和凌晨2点以下的时间。

编辑:

您必须检查startTime是否大于endTime,并相应地更改查询,f.e.:

代码语言:javascript
复制
LocalTime startTime = LocalTime.parse("11:00 PM", DateTimeFormatter.ofPattern("KK:mm a"));
LocalTime endTime = LocalTime.parse("02:00 AM", DateTimeFormatter.ofPattern("KK:mm a"));

LocalTime selected = LocalTime.parse("01:00 AM", DateTimeFormatter.ofPattern("KK:mm a"));

if (startTime.isBefore(endTime)) {
    if (selected.isAfter(startTime) && selected.isBefore(endTime)) {
        System.out.println("It works!");
    }
} else if (startTime.isAfter(endTime)) {
    if (selected.isAfter(startTime) || selected.isBefore(endTime)) {
        System.out.println("It works!");
    }
} else {
    // Decide what to do if startTime and endTime are equal.
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31429438

复制
相关文章

相似问题

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