Beispiel #1
0
  public static Object[] weekly(Request[] requests, long start, long end) {
    GregorianCalendar dayStart = new GregorianCalendar();
    dayStart.setTimeInMillis(start);
    dayStart.set(Calendar.HOUR_OF_DAY, 0);
    dayStart.set(Calendar.MINUTE, 0);
    dayStart.set(Calendar.SECOND, 0);
    dayStart.set(Calendar.MILLISECOND, 0);

    GregorianCalendar dayEnd = new GregorianCalendar();
    dayEnd.setTimeInMillis(dayStart.getTimeInMillis() + 1000 * 60 * 60 * 24);

    Object[] results = new Object[(int) ((end - start) / ((long) 1000 * 60 * 60 * 24))];

    for (int i = 0; dayStart.getTimeInMillis() < end; ++i) {
      long cur = 0;

      for (Request request : requests) {
        // seek open requests
        if (request.getRecievedAt() <= dayStart.getTimeInMillis()
            && request.getFinishedAt() > dayEnd.getTimeInMillis()) {
          cur++;
        }
      }
      Object row[] = new Object[3];
      row[0] = new Long(dayStart.getTimeInMillis());
      row[1] = new Long(dayEnd.getTimeInMillis());
      row[2] = new Double(cur);

      results[i] = row;

      dayStart.setTimeInMillis(dayStart.getTimeInMillis() + 1000 * 60 * 60 * 24);
      dayEnd.setTimeInMillis(dayStart.getTimeInMillis() + 1000 * 60 * 60 * 24);
    }

    return results;
  }