예제 #1
0
  private static void transposeList(List<FoodSchedule> schedule, int transpose) {
    // Get date from first event
    FoodSchedule foodSchedule = schedule.get(0);
    DateTime dateTime = foodSchedule.getDateTime();

    // we need at least as many fridays as are scheduled
    int minFridays = schedule.size();

    int year = dateTime.getYear();
    String lastDate = "31/12/" + year;

    // Get fridays and remove count
    String startDate = dateTime.toString(FridayFinder.DATE_PATTERN);
    List<DateTime> fridaysOfYear = FridayFinder.getFridays(startDate, lastDate);

    // check that fridays is at least minFridays+transpose
    if (fridaysOfYear.size() < minFridays + transpose) {
      // add a new year
      DateTime lastDayOfCurrYear = FridayFinder.DATE_PATTERN.parseDateTime(lastDate);
      DateTime firstDayNextYear = lastDayOfCurrYear.plusDays(1);
      DateTime nextYearLastDay = lastDayOfCurrYear.plusYears(1);

      // get new list and add all
      fridaysOfYear.addAll(FridayFinder.getFridays(firstDayNextYear, nextYearLastDay));
    }

    for (int i = 0; i < transpose; i++) {
      fridaysOfYear.remove(0);
    }

    // rebuild participant list
    for (int i = 0; i < schedule.size(); i++) {
      FoodSchedule fs = schedule.get(i);
      fs.setDateTime(fridaysOfYear.get(i));
    }
  }