如何检查一天中的时间是否在两次之间?

问题描述

您可以使用Calendar.get(),如另一个答案中所述。但是,要比较分钟,您也应该使用Calendar.MINUTE

int minutes_in_day = time.get(Calendar.HOUR_OF_DAY)*60 + time.get(Calendar.MINUTE);

然后,您可以将当前时间当天的分钟数与开始时间和结束时间进行比较。当然,只有在同一时间,这才起作用。

解决方法

在我的应用中,我创建了一个代表高中班级的对象。该对象包含2个Calendar对象,分别代表班级每天的开始和结束时间。当用户创建作业时,我要检查当前时间是否在任何课程的两次之间。如果是的话,我知道作业是在该课程中创建的。这是我当前无法使用的代码,因为.getTime()返回一个包含月和日的日期,而我只想比较小时和分钟。因此,如何修剪返回的日期,使其仅包含一天中的时间?使用joda-
time会更容易吗?如果是,应该使用什么类?

    public void checkTimeFrame() {
    time = Calendar.getInstance().getTime();
    ArrayList<SchoolClass> mList = mClassList;

    // Changes index if assignment falls under time frame of class
    for (int a = 0; a < mList.size(); a++) {
        if (mList.get(a).getStartTime() != null && mList.get(a).getEndTime() != null &&
                time.after(mList.get(a).getStartTime().getTime()) && time.before(mList.get(a)
                .getEndTime().getTime())) {
            index = a;
            updateClassEditText();
        }
    }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...