public String getRepeatDaysString() { StringBuilder daysStringBuilder = new StringBuilder(); if (getDays().length == Day.values().length) { daysStringBuilder.append("Every Day"); } else { Arrays.sort( getDays(), new Comparator<Day>() { @Override public int compare(Day lhs, Day rhs) { return lhs.ordinal() - rhs.ordinal(); } }); for (Day d : getDays()) { switch (d) { case TUESDAY: case THURSDAY: // daysStringBuilder.append(d.toString().substring(0, 4)); // break; default: daysStringBuilder.append(d.toString().substring(0, 3)); break; } daysStringBuilder.append(','); } daysStringBuilder.setLength(daysStringBuilder.length() - 1); } return daysStringBuilder.toString(); }
/** @return the alarmTime */ public Calendar getAlarmTime() { if (alarmTime.before(Calendar.getInstance())) alarmTime.add(Calendar.DAY_OF_MONTH, 1); while (!Arrays.asList(getDays()) .contains(Day.values()[alarmTime.get(Calendar.DAY_OF_WEEK) - 1])) { alarmTime.add(Calendar.DAY_OF_MONTH, 1); } return alarmTime; }
public void progressHour() { if (myHour == 23) { myHour = 0; if (myDay.equals(Day.SUN)) { myDay = Day.MON; } else { int nextOrdinal = myDay.ordinal() + 1; myDay = Day.values()[nextOrdinal]; } } else myHour++; }
public RoomUsageData() { times = new HashMap<Main.Day, List<Pair>>(); for (Day d : Day.values()) times.put(d, new ArrayList<Pair>()); }
/** * @param data * @param input */ private static void usage( Map<String, Map<String, RoomUsageData>> data, String input, String setBuilding, String setRoom) { Scanner s = new Scanner(input); List<String> buildings = new ArrayList<String>(); List<String> rooms = new ArrayList<String>(); List<Day> days = new ArrayList<Day>(); int start = 0; int end = 24 * 60 - 1; while (s.hasNext()) { String command = s.next(); if (command.equals("-b")) { if (!s.hasNext()) { System.err.println("ERROR: -b requires an argument."); return; } String[] ls = s.next().split(";"); for (String l : ls) buildings.add(l); } else if (command.equals("-r")) { if (!s.hasNext()) { System.err.println("ERROR: -r requires an argument."); return; } String[] ls = s.next().split(";"); for (String l : ls) rooms.add(l); } else if (command.equals("-d")) { if (!s.hasNext()) { System.err.println("ERROR: -d requires an argument."); return; } String[] ls = s.next().split(";"); for (String l : ls) { if (convertStringToDay(l) == null) { System.err.println("ERROR: " + l + " is not a valid day."); return; } days.add(convertStringToDay(l)); } } else if (command.equals("-t")) { if (!s.hasNext()) { System.err.println("ERROR: -t requires two arguments."); return; } String ts = s.next(); if (!s.hasNext()) { System.err.println("ERROR: -t requires two arguments."); return; } String te = s.next(); start = convertCommonTimeToMintues(ts); end = convertCommonTimeToMintues(te); if (start < 0 || end < 0) { System.err.println( "ERROR: improperly formatted time. Time should be [hours]:[mins][am/pm] (e.g. 12:30pm)."); return; } } } if (buildings.isEmpty() && setBuilding.equals("")) { System.err.println("ERROR: No building set or given as an argument."); return; } else if (buildings.size() > 1 && rooms.size() > 0) { System.err.println( "ERROR: More than one building given as an argument and room/s given as argument."); return; } if (start > end) { System.err.println("ERROR: The start time is after the end time."); return; } for (String building : buildings) { if (!data.containsKey(building)) { System.err.println("ERROR: " + building + " is not a building."); return; } } if (buildings.isEmpty()) buildings.add(setBuilding); for (String room : rooms) { if (!data.get(buildings.get(0)).containsKey(room)) { System.err.println("ERROR: " + room + " is not a room in " + buildings.get(0) + "."); return; } } if (buildings.size() == 1 && !setRoom.equals("")) rooms.add(setRoom); if (days.isEmpty()) { for (Day d : Day.values()) days.add(d); } for (String building : buildings) { if (buildings.size() > 1 || rooms.size() <= 0) { rooms.clear(); rooms.addAll(data.get(building).keySet()); } for (String room : rooms) { // if there is just one day we're printing for, we want to print the room on the same line // as the usage info // otherwise we want the room on a seperate line if (days.size() > 1) System.out.println("=================================" + building + " " + room); else System.out.print(building + " " + room + ": "); for (Day d : days) { if (days.size() > 1) System.out.print(d.toString() + ": "); System.out.println(data.get(building).get(room).getUsage(d, start, end)); } } } }
@Override protected void runExercise() { for (Day day : Day.values()) { System.out.printf(day.getMonkeyActivity() + " on %s%n", day.name()); } }
public static void main(String[] args) { for (MyDay d : MyDay.values()) { ensureEquals(d.toString(), Day.values()[d.ordinal()].toString()); ensureEquals(d.next().toString(), Day.values()[d.ordinal()].next().toString()); } }
MyDay next() { return MyDay.values()[(this.ordinal() + 1) % Day.values().length]; }