package Calendar; import java.util.ArrayList; import java.util.Iterator; public class Day implements Iterable,Comparable { private Days Name; private int ordinal; private Date date; private ArrayList Slots = new ArrayList<>(); public Day (Date date, int ordinal) { this.ordinal = ordinal; this.Name = Days.values()[ordinal-1]; this.date = date; for (int i = 0 ; i < 6 ; i++) { Slots.add(new Slot(ActivityType.Empty)); } } @Override public Iterator iterator() { return new Iterator() { @Override public boolean hasNext() { // There' s always a next day return true; } @Override public Day next() { if (ordinal == 7) { return new Day(date.iterator().next(),1); } else { return new Day(date.iterator().next(),ordinal+1); } } }; } @Override public int compareTo(Day o) { return this.date.compareTo(o.date); } public Days getName() { return Name; } public Date getDate() { return new Date(date); } public int getOrdinal() { return ordinal; } public String toString() { return Name.toString() + ": " + date.toString(); } public ArrayList getSlots() { return Slots; } }