【发布时间】:2021-06-07 06:14:45
【问题描述】:
我是新手。我正在 GitHub 中探索一个时间表 Android 库。我现在可以保存类数据的 JSON,并且我有一个存储简单时间表数据的 JSON。 JSON字符串如下:
String data:
{
"sticker":[ {
"idx":2,
"schedule":[{
"classTitle": "Image Processing",
"classPlace": "DK3",
"professorName":"John",
"day":4,
"startTime" :{"hour":8,"minute":0},
"endTime" :{"hour":10,"minute":0}
}]
},
{
"idx":4,
"schedule":[{
"classTitle":"Digital Signal Processing",
"classPlace":"DK10",
"professorName":"Billy",
"day":0,
"startTime" :{"hour":8,"minute":0},
"endTime" :{"hour":10,"minute":0}
}]
},
{
"idx":6,
"schedule":[{
"classTitle":"Data Analytics",
"classPlace":"DK6",
"professorName":"Susan",
"day":2,
"startTime" :{"hour":15,"minute":0},
"endTime" :{"hour":17,"minute":0}
}]
}
]
}
我想检查 JSON 中是否有任何课程与彼此的课时重叠。例如,A班和B班在同一天,B班在A班的间隔开始。如何检查班级的条件以找出重叠的班级并显示两者的所有信息课程安排。
以下是可能相关的时间表库的Java类。
这是 Sticker.java。
package com.github.tlaabs.timetableview;
import android.widget.TextView;
import java.io.Serializable;
import java.util.ArrayList;
public class Sticker implements Serializable {
private ArrayList<TextView> view;
private ArrayList<Schedule> schedules;
public Sticker() {
this.view = new ArrayList<TextView>();
this.schedules = new ArrayList<Schedule>();
}
public void addTextView(TextView v){
view.add(v);
}
public void addSchedule(Schedule schedule){
schedules.add(schedule);
}
public ArrayList<TextView> getView() {
return view;
}
public ArrayList<Schedule> getSchedules() {
return schedules;
}
}
这是 Schedule.java。
package com.github.tlaabs.timetableview;
import java.io.Serializable;
public class Schedule implements Serializable {
static final int MON = 0;
static final int TUE = 1;
static final int WED = 2;
static final int THU = 3;
static final int FRI = 4;
static final int SAT = 5;
static final int SUN = 6;
String classTitle="";
String classPlace="";
String professorName="";
private int day = 0;
private Time startTime;
private Time endTime;
public Schedule() {
this.startTime = new Time();
this.endTime = new Time();
}
public String getProfessorName() {
return professorName;
}
public void setProfessorName(String professorName) {
this.professorName = professorName;
}
public String getClassTitle() {
return classTitle;
}
public void setClassTitle(String classTitle) {
this.classTitle = classTitle;
}
public String getClassPlace() {
return classPlace;
}
public void setClassPlace(String classPlace) {
this.classPlace = classPlace;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public Time getStartTime() {
return startTime;
}
public void setStartTime(Time startTime) {
this.startTime = startTime;
}
public Time getEndTime() {
return endTime;
}
public void setEndTime(Time endTime) {
this.endTime = endTime;
}
}
感谢任何帮助。
【问题讨论】:
-
在 Schedule 中定义一个方法来确定是否有重叠。
hasOverlap(Schedule obj)然后与其他人一起检查每个时间表。