📄 datadaterange.java
字号:
sb.append(" ");
sb.append(EpochTime.dateToString( ((DataDate) max).value, pattern));
return sb.toString();
}
/** Returns String concatenation of minimum and maximum bounds as
* GMT date values separated by " ".
*/
public String toString() {
return toDateString("yyyy/MM/dd:HH:mm:ss.SSS");
}
/** Returns String concatenation of minimum and maximum dates as represented in database.
* Inserts "NULL" if value is equivalent to NULL or bound == null.
* These values are separated by ", ".
* @see org.trinet.jdbc.StringSQL#valueof(java.util.Date)
*/
public String toStringSQL() {
StringBuffer sb = new StringBuffer(80);
sb.append(StringSQL.valueOf(min));
sb.append(", ");
sb.append(StringSQL.valueOf(max));
return sb.toString();
}
/** Convenience wrapper System.out.println(toString()). */
public void print() {
System.out.println(toString());
}
/**
* Sets the minimum bound value for the range to the input value.
*/
public void setMin(java.util.Date minDate) {
if (max != null) {
if (minDate.after( ((DataDate) max).value) )
throw new IllegalArgumentException("DateRange constructor min-max bounds reversed.");
}
min.setValue(minDate);
}
/**
* Sets the maximum bound value of the range to the input value.
*/
public void setMax(java.util.Date maxDate) {
if (min != null) {
if (maxDate.before( ((DataDate) min).value))
throw new IllegalArgumentException("DateRange constructor min-max bounds reversed.");
}
max.setValue(maxDate);
}
/**
* Sets the minimum, maximum bounds of the range to the input values.
*/
public void setLimits(java.util.Date minDate, java.util.Date maxDate) {
if (minDate == null || maxDate == null) throw new NullPointerException("DateRange setLimits() null input parameter");
if (maxDate.before(minDate))
throw new IllegalArgumentException("DateRange setLimits() min-max bounds reversed." );
min.setValue(minDate);
max.setValue(maxDate);
}
/**
* Sets the range bounds to clones of the input range bounds.
*/
public void setLimits(DataDateRange range) {
setLimits((DataDate) range.min.clone(), (DataDate) range.max.clone());
}
/**
* Sets the appropiate minimum or maximum bound to extend the range to include the input value.
* Does a no-op if contains(Date) == true.
*/
public void include(java.util.Date date) {
if (min == null || max == null)
throw new NullPointerException("DateRange include(date) null min or max bound");
if (date.before( ((DataDate) min).value) ) min.setValue(date);
else if (date.after( ((DataDate) max).value) ) max.setValue(date);
}
/**
* Sets the appropiate range bounds to include input range bounds.
* Clones the input bounds.
* Does a no-op if contains(DataDateRange) == true.
*/
public void include(DataDateRange range) {
if (min == null || max == null)
throw new NullPointerException("DateRange include(range) null min or max bound");
if (((DataDate) range.min).value.before( ((DataDate) min).value) ) min = (DataDate) range.min.clone();
if (((DataDate) range.max).value.after( ((DataDate) max).value) ) max = (DataDate) range.max.clone();
}
/**
* Returns true if bound values can be parsed from input StringTokenizer.
* Does not set value and returns false if tokenizer.countTokens() < 2
* or java.util.Date cannot be parsed from tokens.
*/
public boolean parseValue(StringTokenizer tokenizer) {
if (tokenizer.countTokens() < 2) return false;
java.util.Date minDate = EpochTime.stringToDate(tokenizer.nextToken(), dateFormat);
java.util.Date maxDate = EpochTime.stringToDate(tokenizer.nextToken(), dateFormat);
if (minDate == null || maxDate == null) return false;
setLimits(minDate, maxDate);
return true;
}
public static void main(String [] args) {
System.out.println("++++++++ BEGIN TEST ++++++++++");
long ms = System.currentTimeMillis();
Date now = new Date(ms);
Date ontime = new Date(ms + 360000);
Date later = new Date(ms + 3600000);
Date laterstill = new Date(ms + 7200000);
Date yesterday = new Date(ms - 86400000);
Date tomorrow = new Date(ms + 86400000);
DataDateRange dr = new DataDateRange(now, later);
DataDateRange dr2 = new DataDateRange(yesterday, tomorrow);
dr.dump1(yesterday);
dr.dump1(ontime); dr.dump1(later); dr.dump1(tomorrow);
dr.dump2(dr2);
System.out.println("Test dr.setLimits(ontime, laterstill)");
dr.setLimits(ontime, laterstill);
dr.dump2(dr2);
System.out.println("Test dr.include(now)");
dr.include(now);
dr.dump2(dr2);
System.out.println("Test dr.include(dr2)");
dr.include(dr2);
dr.dump2(dr2);
System.out.println("Test dr.setMax(laterstill); dr2.setMin(laterstill)");
dr.setMax(laterstill);
dr2.setMin(laterstill);
dr.dump2(dr2);
System.out.println("Test dr.setMax(later); dr2.setMin(laterstill)");
dr.setMax(later);
dr2.setMin(laterstill);
dr.dump2(dr2);
}
public void dump(DataDateRange dr2, DataDateRange dr3) {
System.out.println("Test equalsRange: ");
System.out.println(" dr2.toString(): " + dr2.toString());
System.out.println(" dr3.toString(): " + dr3.toString());
System.out.println(" dr2.equalsRange(dr3) : " + dr2.equalsRange(dr3));
System.out.println("------------------\n");
}
public void dump1(Date val) {
System.out.println("Dump Range bounds: " + min.toString() + ", " + max.toString() + " size: " +
EpochTime.elapsedTimeToText(seconds()) );
System.out.println(" Test input val: " + val);
System.out.println(" after(val) : " + after(val));
System.out.println(" before(val) : " + before(val));
System.out.println(" excludes(val) : " + excludes(val));
System.out.println(" contains(val) : " + contains(val));
System.out.println("------------------\n");
}
public void dump2(DataDateRange dr2) {
System.out.println("Dump Range bounds: " + min.toString() + ", " + max.toString() + " size: " +
EpochTime.elapsedTimeToText(seconds()) );
System.out.println(" Test Range2 Min,max: " + dr2.min.toString() + ", " + dr2.max.toString() );
System.out.println(" within(dr2) : " + within(dr2));
System.out.println(" dr2.within(this) : " + dr2.within(this));
System.out.println(" overlaps(dr2) : " + overlaps(dr2));
System.out.println(" dr2.overlaps(this): " + dr2.overlaps(this));
System.out.println(" dr2.after(this) : " + dr2.after(this));
System.out.println(" after(dr2) : " + after(dr2));
System.out.println(" dr2.before(this) : " + dr2.before(this));
System.out.println(" before(dr2) : " + before(dr2));
System.out.println(" dr2.excludes(this): " + dr2.excludes(this));
System.out.println(" excludes(dr2) : " + excludes(dr2));
System.out.println(" dr2.contains(this): " + dr2.contains(this));
System.out.println(" contains(dr2) : " + contains(dr2));
System.out.println("------------------\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -