Your problem is that two of your method calls do not return the values that you think, as described in
the documentation[
^].
getYear
returns the year since 1900, i.e. 114 for 2014.
getDay
returns the day of the week, not the day of the month.
Your code should read:
Calendar cal = Calendar.getInstance();
cal.set(date.getYear()+1900,date.getMonth(),date.getDate(),time.getHours(),time.getMinutes());
Although note that all these methods are now deprecated.
So when you said that comparison didn't take place, that was not quite true; it did take place, but always produced the wrong result.