Aipoのスケジュールで開始済かどうか判定する方法

繰り返しスケジュールで期間指定がない場合は開始済にせず、

繰り返しスケジュールで期間指定がある場合は最後の開始時刻が過ぎたら開始済にします。

  /**
   * 開始済判定
   *
   * @param startDate
   * @param endDate
   * @param isSpan
   * @param isRepeat
   * @return
   */
  public static boolean isLastStarted(Date startDate, Date endDate,
      boolean isSpan, boolean isRepeat, boolean isLimit) {
    boolean isStarted = false;
    Calendar today = Calendar.getInstance();
    Calendar cal = Calendar.getInstance();
    cal.setTime(startDate);
    if (!isSpan && isRepeat && !isLimit) {
      // 期間指定なしの繰り返しスケジュール
      isStarted = false;
    } else {
      if (!isSpan && isRepeat && isLimit) {
        // 期間指定の繰り返しスケジュール
        Calendar cal2 = Calendar.getInstance();
        cal2.setTime(endDate);
        cal.set(Calendar.YEAR, cal2.get(Calendar.YEAR));
        cal.set(Calendar.MONTH, cal2.get(Calendar.MONTH));
        cal.set(Calendar.DATE, cal2.get(Calendar.DATE));
      }
      if (cal.getTime().before(today.getTime())) {
        isStarted = true;
      }
    }
    return isStarted;
  }