一尘不染

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

java

在我的应用中,我创建了一个代表高中班级的对象。该对象包含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();
        }
    }
}

阅读 131

收藏
2020-12-03

共1个答案

一尘不染

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

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

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

2020-12-03