package seedu.typed.schedule;

import seedu.typed.model.task.DateTime;
//@@author A0139379M
/**
 * TimeExpression is an expression that specifies
 * a recurring date. All TimeExpression has an individual
 * instance method to work out whether a day lies in the
 * expression.
 * @author: YIM CHIA HUI
 **/
public interface TimeExpression {

    /**
     * Checks if date falls within TimeExpression
     * i.e if 12/12/2017 falls within every Monday
     * or second tuesday of every month etc
     * @params DateTime date
     * @return True if TimeExpression includes date
     **/
    public boolean includes(DateTime date);

}

@@ -506,22 +506,13 @@
 ams 
-DateTime 
 date%0A
+
     
@@ -568,16 +568,16 @@
     **/%0A
-
     publ
@@ -613,10 +613,271 @@
 date);%0A%0A
+    /**%0A     * Returns the next DateTime %0A     * where it falls within the TimeExpression%0A     * @param date%0A     * @return the next occurring DateTime object where%0A     * includes return true%0A     */%0A    public DateTime nextDeadlineOccurrence(DateTime date);%0A%0A
 %7D%0A

Add support for recurrence in time expression with time expression to parse recurrence rule