java - 我的时间介于开始时间和结束时间之间

标签 java android date time

如果当前时间是 18,则此逻辑不起作用。 这里开始时间是 22 点(晚上 10 点),结束时间是 06 点(上午 6 点) 提前致谢。

int hour = currentTime.get(Calendar.HOUR_OF_DAY);

if (hour > 22) {
        if (hour > 06) {
            return true;

        }
    }

    if (hour < 22) {
        if (hour < 06) {
            return true;
        }
    }

    if (hour == 00) {
        return true;
    }
    return false;

最佳答案

您的逻辑远未本地化到特定情况,但您需要:

if (endHour < startHour) { // the end is on the next day
    if (hour > startHour || hour < endHour) {
        return HOUR_IS_IN_RANGE;
    }
}
else { // end hour is on the same day as start shour
    if (hour >startHour && hour < endHour) {
        return HOUR_IS_IN_RANGE;
    }
 }
 return HOUR_NOT_IN_RANGE;

您还应该考虑 >=/<= 而不仅仅是 > 和 <。

关于java - 我的时间介于开始时间和结束时间之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12793942/

相关文章:

mysql - 根据出生日期计算年龄并返回20岁到30岁之间的行

mysql - 如何从以逗号分隔值存储的 MySQL 中选择当前周工作日期

r - 转换序列日期

java - 从字符串末尾获取所有换行符的正则表达式是什么

java - 如何为跨类 Volley 方法调用创建合适的 Volley Listener

java - for 星形图案循环

android - 如何关闭 TimePicker 的键盘图标?

java - 在 CDI 中,是否有一次性获得传递限定符的方法?

android - 是否可以颠倒垂直 LinearLayout 中布局的 View 顺序?

java - 不在android中的可绘制 Canvas 中显示横幅广告