示例#1
0
文件: Alarm.java 项目: vult/MyAlarm
  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();
  }
示例#2
0
文件: Alarm.java 项目: vult/MyAlarm
 /** @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++;
  }
示例#4
0
 public RoomUsageData() {
   times = new HashMap<Main.Day, List<Pair>>();
   for (Day d : Day.values()) times.put(d, new ArrayList<Pair>());
 }
示例#5
0
  /**
   * @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());
   }
 }
示例#7
0
 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());
   }
 }
示例#8
0
 MyDay next() {
   return MyDay.values()[(this.ordinal() + 1) % Day.values().length];
 }