package at.tugraz.examreminder.core;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Exam implements Comparable<Exam> {
public static transient String DATE_FORMAT = "dd.MM.yyyy HH:mm";
public transient Course course;
private GregorianCalendar from;
private GregorianCalendar to;
public String place;
public String term;
public String lecturer;
public String examinar;
public GregorianCalendar registerDeadline;
public GregorianCalendar cancelDeadline;
public int participants;
public int participants_max;
public GregorianCalendar updated_at;
public long event_id;
public Exam(Course course){
this.course = course;
setFrom(new GregorianCalendar());
setTo(new GregorianCalendar());
cancelDeadline = new GregorianCalendar();
registerDeadline = new GregorianCalendar();
updated_at = new GregorianCalendar();
event_id = -1;
}
public String getFromFormated() {
return new SimpleDateFormat(DATE_FORMAT).format(getFrom().getTime());
}
public String getToFormated() {
return new SimpleDateFormat(DATE_FORMAT).format(getTo().getTime());
}
public String getRegisterDeadline() {
return new SimpleDateFormat(DATE_FORMAT).format(registerDeadline.getTime());
}
public String getCancelDeadline() {
return new SimpleDateFormat(DATE_FORMAT).format(cancelDeadline.getTime());
}
@Override
public int compareTo(Exam exam) {
return getFrom().compareTo(exam.getFrom());
}
@Override
public Exam clone() {
Exam exam = new Exam(course);
exam.setFrom(getFrom());
exam.setTo(getTo());
exam.place = place;
exam.term = term;
exam.lecturer = lecturer;
exam.examinar = examinar;
exam.registerDeadline = registerDeadline;
exam.cancelDeadline = cancelDeadline;
exam.participants = participants;
exam.participants_max = participants_max;
exam.updated_at = updated_at;
return exam;
}
public GregorianCalendar getFrom() {
return from;
}
public void setFrom(GregorianCalendar from) {
this.from = from;
this.from.set(Calendar.SECOND, 0);
this.from.set(Calendar.MILLISECOND, 0);
}
public GregorianCalendar getTo() {
return to;
}
public void setTo(GregorianCalendar to) {
this.to = to;
this.to.set(Calendar.SECOND, 0);
this.to.set(Calendar.MILLISECOND, 0);
}
public String getDateFormated() {
return new SimpleDateFormat("dd.MM.yyyy").format(from.getTime());
}
public String getTimespanFormated() {
String fromTime = new SimpleDateFormat("HH:mm").format(from.getTime());
String toTime = new SimpleDateFormat("HH:mm").format(to.getTime());
return fromTime + " - " + toTime;
}
}