@@ -0,0 +1,1101 @@
+package seedu.address.logic.parser;%0A%0Aimport java.time.LocalDate;%0Aimport java.time.LocalDateTime;%0Aimport java.time.LocalTime;%0A%0Aimport seedu.address.commons.exceptions.IllegalValueException;%0A%0A/**%0A * A date and time parser. See %7B@link DateParser%7D and %7B@link TimeParser%7D.%0A */%0Apublic class DateTimeParser %7B%0A%0A    private final DateParser dateParser;%0A%0A    private final TimeParser timeParser;%0A%0A    public DateTimeParser() %7B%0A        this(LocalDateTime.now());%0A    %7D%0A%0A    public DateTimeParser(LocalDateTime referenceDateTime) %7B%0A        assert referenceDateTime != null;%0A        dateParser = new DateParser(referenceDateTime.toLocalDate());%0A        timeParser = new TimeParser(referenceDateTime.toLocalTime());%0A    %7D%0A%0A    public LocalDateTime getReferenceDateTime() %7B%0A        return LocalDateTime.of(dateParser.getReferenceDate(), timeParser.getReferenceTime());%0A    %7D%0A%0A    public LocalDate parseDate(String str) throws IllegalValueException %7B%0A        return dateParser.parse(str);%0A    %7D%0A%0A    public LocalTime parseTime(String str) throws IllegalValueException %7B%0A        return timeParser.parse(str);%0A    %7D%0A%0A%7D%0A

implement DateTimeParser