
it.amattioli.encapsulate.dates.Hour Maven / Gradle / Ivy
package it.amattioli.encapsulate.dates;
import it.amattioli.encapsulate.range.Discrete;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Hour extends ConventionalTimeInterval implements Discrete, Serializable, Cloneable {
private Hour() {
this(new Date());
}
private Hour(Calendar cal) {
setCalendar(cal);
}
public Hour(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
setCalendar(cal);
}
public static Hour now() {
return new Hour();
}
@Override
public int compareTo(Hour o) {
return this.getInitTime().compareTo(o.getInitTime());
}
@Override
public Hour next() {
Calendar precCal = (Calendar) getCalendar().clone();
precCal.add(Calendar.HOUR_OF_DAY, 1);
return new Hour(precCal);
}
@Override
public Hour previous() {
Calendar precCal = (Calendar) getCalendar().clone();
precCal.add(Calendar.HOUR_OF_DAY, -1);
return new Hour(precCal);
}
public Date getEndTime() {
Calendar succCal = (Calendar) getCalendar().clone();
succCal.add(Calendar.HOUR_OF_DAY, 1);
return succCal.getTime();
}
public boolean equals(Object o) {
if (o instanceof Hour) {
Hour m = (Hour) o;
return this.getInitTime().equals(m.getInitTime());
} else {
return false;
}
}
@Override
public Object clone() {
return new Hour((Calendar) getCalendar().clone());
}
public String toString() {
DateFormat format = new SimpleDateFormat("hh:mm dd/MM/yyyy");
return format.format(getInitTime());
}
@Override
public Duration getDuration() {
return getPhysicalDuration();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy