《分析模式:可重用对象模型》学习笔记之四:企业财政分析中的观察和丈量06 ...

打印 上一主题 下一主题

主题 685|帖子 685|积分 2055

下面是一些用Java 给出的代码示例(Sample code),是作者最喜欢的Date Range。
class DateRange...
public DateRange (Date start, Date end) {
this (new MfDate(start), new MfDate(end));
}
public DateRange (MfDate start, MfDate end) {
this.start = start;
this.end = end;
}
class DateRange...
public MfDate end(){
return end;
}
public MfDate start() {
return start;
}
public String toString() {
if (isEmpty()) return "Empty Date Range";
return start.toString() + " - " + end.toString();
}
public boolean isEmpty() {
return start.after(end);
}
Range 最关键的方法:includes()方法。
class DateRange...
public boolean includes (MfDate arg) {
return !arg.before(start) && !arg.after(end);
}
为开区间和空缺范围提供的构造函数。
class DateRange...
public static DateRange upTo(MfDate end) {
return new DateRange(MfDate.PAST, end);
}
public static DateRange startingOn(MfDate start) {
return new DateRange(start, MfDate.FUTURE);
}
public static DateRange EMPTY = new DateRange(new MfDate(2000,4,1), new MfDate(2000,1,1));
对范围进行比力的方法也非常有效。
class DateRange...
public boolean equals (Object arg) {
if (! (arg instanceof DateRange)) return false;
DateRange other = (DateRange) arg;
return start.equals(other.start) && end.equals(other.end);
}
public int hashCode() {
return start.hashCode();
}
public boolean overlaps(DateRange arg) {
return arg.includes(start) || arg.includes(end) || this.includes(arg);
}
public boolean includes(DateRange arg) {
return this.includes(arg.start) && this.includes(arg.end);
}
其他一些大概有效的方法,比方两个范围的差(返回一个范围的下限和另一个范围上限之间的范围)
class DateRange...

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表