/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package se.sics.gvod.common.msgs; import java.util.Calendar; /** * * @author jdowling */ public class Timestamp implements Comparable<Timestamp> { public Timestamp() { Calendar cal = Calendar.getInstance(); year = cal.get(Calendar.YEAR); month = cal.get(Calendar.MONTH); day=cal.get(Calendar.DAY_OF_MONTH); hour=cal.get(Calendar.HOUR_OF_DAY); minute=cal.get(Calendar.MINUTE); second=cal.get(Calendar.SECOND); } public Timestamp(int year, int month, int day, int hour, int minute, int second) { this.year = year; this.month = month; this.day = day; this.hour = hour; this.minute = minute; this.second = second; } public int year; public int month; public int day; public int hour; public int minute; public int second; /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (!(obj instanceof Timestamp)) return false; Timestamp objToCompareTo = (Timestamp)obj; return compareTo(objToCompareTo)==0; } public void set(int year, int month, int day, int hour, int minute, int second) { this.year = year; this.month = month; this.day = day; this.hour = hour; this.minute= minute; this.second=second; } public Timestamp addSeconds(int seconds) { Calendar cal = Calendar.getInstance(); cal.clear(); cal.set(year, month, day, hour, minute, second); cal.add(Calendar.SECOND, seconds); return new Timestamp(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)); } /* (non-Javadoc) * @see java.lang.Comparable#compareTo(java.lang.Object) */ public int compareTo(Timestamp o) { if (this.year>o.year) return 1; if (this.year<o.year) return -1; if(this.month>o.month) return 1; if(this.month<o.month) return -1; if(this.day>o.day) return 1; if(this.day<o.day) return -1; if(this.hour>o.hour) return 1; if(this.hour<o.hour) return -1; if(this.minute>o.minute) return 1; if(this.minute<o.minute) return -1; if(this.second>o.second) return 1; if(this.second<o.second) return -1; return 0; } /** * @param a timestamp to compare to * @return true if this timestamp is newer than one in param object */ public boolean newerThan(Timestamp o) { return compareTo(o)>0; } /** * @param a timestamp to compare to * @return true if this timestamp is older than one in param object */ public boolean olderThan(Timestamp o) { return compareTo(o)<0; } public void copy(Timestamp t) { year = t.year; month = t.month; day=t.day; hour=t.hour; minute=t.minute; second=t.second; } public String toString() { StringBuilder sb = new StringBuilder(); sb.append(this.year); sb.append(":"); sb.append(this.month); sb.append(":"); sb.append(this.day); sb.append(":"); sb.append(this.hour); sb.append(":"); sb.append(this.minute); sb.append(":"); sb.append(this.second); return sb.toString(); } }