对于第一部分,Java Calendar类是您希望使用的,按照星期几。我不会很快看到这种变化。现在对于第二部分TimeSlot
也有一个小时的字段,我们会沿着这些线创建一些东西。
class TimeSlot
{
Calendar classStart; //Holds the day and the hour for the start
Calendar classEnd; //Holds the day and the hour for the end
public TimeSlot(Calendar classStart, Calendar classEnd)
{
this.classStart = classStart;
this.classEnd = classEnd;
}
public TimeSlot(Calendar classStart, int lengthOfClassInMinutes)
{
this.classStart = classStart;
this.classEnd = classStart;
classEnd.add(Calendar.MINUTE, lengthOfClassInMinutes);
}
现在为了说明这是如何适应事物的宏观方案的,我们将有一个表示类的类。
public class Class
{
String title;
Instructor instructor;
int sizeOfClass;
//rest of implementation
}
然后是一个类来表示系统中的预定类。
public class ScheduledClass
{
Class classToSchedule;
TimeSlot classTimeSlot;
public ScheduledClass(Class classToSchedule, TimeSlot classTimeSlot)
{
this.classToSchedule=classToSchedule;
this.classTimeSlot=classTimeSlot;
}
}
在前面我反对扩展Class对象,因为它似乎可以使ScheduledClass更通用,因此应该依赖组合。
Hi @Amir!这些时间段还包含持续时间?你为什么要实例化它们? – nick2083
我只想让所有人都记住,不是每天都有24小时,每个解决方案都应该考虑到这一点。就我个人而言,我只是创建一个Timeslot类,它存储从星期一00:00开始的偏移量(如果不是所有时间段都必须是相等长度的独有的结束范围) - 似乎最简单的工作。对于输出,我们可以很容易地(很不容易,但Jodatime应该完成这项任务)计算正确的日期/时间。 – Voo
并非所有事情都需要依靠JodaTime,这些日子似乎成为任何事情的答案。另外,似乎不是每天都有24小时的限制,这里并不适用。特别是因为我从来没有在所有的大学学习中见过一门课,持续时间超过5个小时(远低于整天的周期) – Woot4Moo