In my school work I needed to implement such a method which can sort my date instance by hour which is set in it. I kept those many instance of the regarding class in a treeset sorted by hour, So the below is example shows that randomly added instances into the treeset is sorted in the treeset which adds up the values in a given sequence whereas I’ve provided the compare method. as you see below in the domain class
Also for your information comparable interface is implemented. By the way don’t you get confused with the dao interface, below you’ll find the custom date format method
Regarding Method
@Override public Date dateTimeGiven(Integer hour, Integer minute, Integer second) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, hour); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, second); Date date = calendar.getTime(); return date; }
Domain class
import java.util.Date; import java.util.Objects; public class Appointment implements Comparable<Appointment> { private Patient patient; private String specialist; private Date appointmentDate; private String slot; private String appointmentStatus; public Appointment(Date appointmentDate) { this.appointmentDate = appointmentDate; } public Appointment() { } public Appointment(Patient patient, String specialist, Date appointmentDate, String slot, String appointmentStatus) { this.patient = patient; this.specialist = specialist; this.appointmentDate = appointmentDate; this.slot = slot; this.appointmentStatus = appointmentStatus; } public Patient getPatient() { return patient; } public void setPatient(Patient patient) { this.patient = patient; } public String getSpecialist() { return specialist; } public void setSpecialist(String specialist) { this.specialist = specialist; } public Date getAppointmentDate() { return appointmentDate; } public void setAppointmentDate(Date appointmentDate) { this.appointmentDate = appointmentDate; } public String getSlot() { return slot; } public void setSlot(String slot) { this.slot = slot; } public String getAppointmentStatus() { return appointmentStatus; } public void setAppointmentStatus(String appointmentStatus) { this.appointmentStatus = appointmentStatus; } @Override public String toString() { return "Appointment{" + "patient=" + patient + ", specialist=" + specialist + ", appointmentDate=" + appointmentDate + ", slot=" + slot + ", appointmentStatus=" + appointmentStatus + '}'; } @Override public int hashCode() { int hash = 7; return hash; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Appointment other = (Appointment) obj; if (!Objects.equals(this.patient, other.patient)) { return false; } if (!Objects.equals(this.specialist, other.specialist)) { return false; } if (!Objects.equals(this.appointmentDate, other.appointmentDate)) { return false; } if (!Objects.equals(this.slot, other.slot)) { return false; } if (!Objects.equals(this.appointmentStatus, other.appointmentStatus)) { return false; } return true; } @Override public int compareTo(Appointment o) { return getAppointmentDate().compareTo(o.getAppointmentDate()); } }
Main class
import com.tugrulaslan.dao.HospitalDAO; import com.tugrulaslan.dao.HospitalDAOImpl; import com.tugrulaslan.model.Appointment; import java.util.Date; import java.util.Set; import java.util.TreeSet; /** * * @author Tugrul */ public class TestMain { public static void main(String[] args) { HospitalDAO hospitalDAO = new HospitalDAOImpl(); Date date1 = hospitalDAO.dayMonthTimeGiven(9, 0, 0); Date date2 = hospitalDAO.dayMonthTimeGiven(10, 0, 0); Date date3 = hospitalDAO.dayMonthTimeGiven(11, 0, 0); Date date4 = hospitalDAO.dayMonthTimeGiven(12, 0, 0); Date date5 = hospitalDAO.dayMonthTimeGiven(13, 0, 0); Date date6 = hospitalDAO.dayMonthTimeGiven(14, 0, 0); Date date7 = hospitalDAO.dayMonthTimeGiven(15, 0, 0); Date date8 = hospitalDAO.dayMonthTimeGiven(16, 0, 0); Date date9 = hospitalDAO.dayMonthTimeGiven(17, 0, 0); Appointment appointment1 = new Appointment(date1); Appointment appointment2 = new Appointment(date2); Appointment appointment3 = new Appointment(date3); Appointment appointment4 = new Appointment(date4); Appointment appointment5 = new Appointment(date5); Appointment appointment6 = new Appointment(date6); Appointment appointment7 = new Appointment(date7); Appointment appointment8 = new Appointment(date8); Appointment appointment9 = new Appointment(date9); Set<Appointment> setList = new TreeSet<>(); setList.add(appointment4); setList.add(appointment5); setList.add(appointment6); setList.add(appointment1); setList.add(appointment2); setList.add(appointment7); setList.add(appointment3); setList.add(appointment9); setList.add(appointment8); int i = 1; for (Appointment obj : setList) { System.out.println("Object " + i + " date value " + obj.getAppointmentDate()); i++; } } }
Output
Object 1 date value Fri Jan 09 00:42:33 EET 2015 Object 2 date value Sat Jan 10 00:42:33 EET 2015 Object 3 date value Sun Jan 11 00:42:33 EET 2015 Object 4 date value Mon Jan 12 00:42:33 EET 2015 Object 5 date value Tue Jan 13 00:42:33 EET 2015 Object 6 date value Wed Jan 14 00:42:33 EET 2015 Object 7 date value Thu Jan 15 00:42:33 EET 2015 Object 8 date value Fri Jan 16 00:42:33 EET 2015 Object 9 date value Sat Jan 17 00:42:33 EET 2015