@@ -0,0 +1,2200 @@
+package seedu.address.model.task;%0A%0Aimport java.text.ParseException;%0Aimport java.text.SimpleDateFormat;%0Aimport java.util.Date;%0A%0Aimport seedu.address.commons.exceptions.IllegalValueException;%0A%0A/**%0A * Represents a Task's due date in the task manager.%0A * Guarantees: immutable; is valid as declared in %7B@link #isValidDate(String)%7D%0A */%0Apublic class TaskDateTime %7B%0A    %0A    public static final String MESSAGE_DATE_TIME_CONSTRAINTS = %22Due date should contain day/month/year hour:minute%22;%0A%0A    public final String value;%0A    public final Integer day;%0A    public final Integer month;%0A    public final Integer year;%0A    public final Integer hour;%0A    public final Integer minute;%0A%0A    /**%0A     * Validates given name.%0A     *%0A     * @throws IllegalValueException if given name string is invalid.%0A     */%0A    public TaskDateTime(String dateTime) throws IllegalValueException %7B%0A        String trimmedDateTime = dateTime.trim();%0A        Date parsedDateTime = parseDateTime(trimmedDateTime);%0A        this.value = trimmedDateTime;%0A        this.day = parsedDateTime.getDay();%0A        this.month = parsedDateTime.getMonth();%0A        this.year = parsedDateTime.getYear();%0A        this.hour = parsedDateTime.getHours();%0A        this.minute = parsedDateTime.getMinutes();%0A    %7D%0A%0A    /**%0A     * Returns object containing date and time given by string value%0A     * @param value%0A     * @return%0A     */%0A    public Date parseDateTime(String value) throws IllegalValueException %7B%0A        SimpleDateFormat format = new SimpleDateFormat(%22dd/MM/yyyy HH:mm%22);%0A        Date result;%0A        try %7B%0A            result = format.parse(value);%0A        %7D catch (ParseException e) %7B%0A            throw new IllegalValueException(MESSAGE_DATE_TIME_CONSTRAINTS);%0A        %7D%0A        return result;%0A    %7D%0A%0A%0A    @Override%0A    public String toString() %7B%0A        return value;%0A    %7D%0A%0A    @Override%0A    public boolean equals(Object other) %7B%0A        return other == this // short circuit if same object%0A                %7C%7C (other instanceof Content // instanceof handles nulls%0A                && this.value.equals(((Content) other).fullContent)); // state check%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return value.hashCode();%0A    %7D%0A%0A%7D%0A

add TaskDateTime field