001: /*
002: * Created on 12-Jul-05
003: *
004: * To change the template for this generated file go to
005: * Window>Preferences>Java>Code Generation>Code and Comments
006: */
007: package org.ontoware.semversion.impl;
008:
009: import java.util.Calendar;
010: import java.util.Date;
011:
012: /**
013: * @author careng
014: *
015: */
016: public class TimeInterval {
017:
018: protected Calendar start;
019:
020: protected Calendar end;
021:
022: public TimeInterval(Calendar start, Calendar end) {
023: this .start = start;
024: this .end = end;
025: }
026:
027: public Calendar getStart() {
028: return start;
029: }
030:
031: public Calendar getEnd() {
032: return end;
033: }
034:
035: public static Date getCurrentTimeStamp() {
036: return new java.util.Date();
037: }
038:
039: /**
040: * This interval should contain the other specified
041: * @param other
042: * @return true (this .... (other...) .... this)
043: */
044: public boolean contains(TimeInterval other) {
045: return this .getStart().compareTo(other.getStart()) <= 0
046: && this .getEnd().compareTo(other.getEnd()) >= 0;
047: }
048:
049: public String toString() {
050: return "[" + getStart() + " ... " + getEnd() + "]=["
051: + getStart().getTime() + " ... " + getEnd().getTime()
052: + "]";
053: }
054:
055: /**
056: * This will subtract timeExpr to current timestamp
057: *
058: * @param timeExpr
059: * is a date with only time
060: * @return
061: */
062: public static Date subtract(Date timeExpr) {
063: long dateMillis = new Date().getTime();
064: long timeExprMillis = timeExpr.getTime();
065:
066: return new Date(dateMillis - timeExprMillis);
067: }
068:
069: /**
070: *
071: * @param date
072: * @param timeExpr
073: * is a date with only time
074: * @return
075: */
076: public static Date subtract(Date date, Date timeExpr) {
077: long dateMillis = date.getTime();
078: long timeExprMillis = timeExpr.getTime();
079:
080: return new Date(dateMillis - timeExprMillis);
081: }
082:
083: /**
084: *
085: * @param date
086: * @param timeExpr
087: * is a date with only time
088: * @return
089: */
090: public static Date add(Date date, Date timeExpr) {
091: long dateMillis = date.getTime();
092: long timeExprMillis = timeExpr.getTime();
093:
094: return new Date(dateMillis + timeExprMillis);
095: }
096:
097: public boolean equals(Object o) {
098: if (o instanceof TimeInterval) {
099: TimeInterval ot = (TimeInterval) o;
100: return ot.getStart().equals(this .getStart())
101: && ot.getEnd().equals(this .getEnd());
102: }
103: return false;
104: }
105:
106: }
|