Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public IPeriod unionWith(IPeriod period)
- {
- //geval 0 : gat tussen de periodes
- if(this.bt.compareTo(period.getEndTime()) == 1 || this.et.compareTo(period.getBeginTime()) == -1)
- {
- return null;
- }
- //geval 1: b1 < b2, e1 > e2 (union: b1, e1)
- if (this.bt.compareTo(period.getBeginTime())== -1 && this.et.compareTo(period.getEndTime())== 1)
- {
- //b1, e1 is this
- return this;
- }
- //geval 2: b2 < b1, e2 > e1.(union: b2, e2)
- if(this.bt.compareTo(period.getBeginTime()) == 1 && this.et.compareTo(period.getEndTime()) == -1)
- {
- //b2, e2 is period
- return period;
- }
- //geval 3: b1 < b2, e1 < e2 (union: b1, e2)
- if(this.bt.compareTo(period.getBeginTime()) == -1 && this.et.compareTo(period.getEndTime()) == -1)
- {
- return new Period(this.bt, period.getEndTime());
- }
- //geval 4: b1 > b2, e1 > e2 (union: b2, e1)
- if(this.bt.compareTo(period.getBeginTime()) == 1 && this.et.compareTo(period.getEndTime()) == 1)
- {
- return new Period(period.getBeginTime(), this.et);
- }
- //geval 5: b1 < b2, b2 = e1
- if(this.bt.compareTo(period.getBeginTime()) == -1 && this.et.compareTo(period.getBeginTime()) == 0)
- {
- return new Period(this.bt, period.getEndTime());
- }
- //geval 6: b1 > b2, b1 = e2
- if(this.bt.compareTo(period.getBeginTime()) == 1 && this.bt.compareTo(period.getEndTime()) == 0)
- {
- return new Period(period.getBeginTime(), this.et);
- }
- //als er geen overlap of aanraking is
- return null;
- }
- @Override
- public IPeriod intersectionWith(IPeriod period)
- {
- //geval 1: b1 < b2, e1 > e2 (overlap: b2, e2)
- if (this.bt.compareTo(period.getBeginTime())== -1 && this.et.compareTo(period.getEndTime())== 1)
- {
- //b2, e2 is period
- return period;
- }
- //geval 2: b2 < b1, e2 > e1.(overlap: b1, e1)
- if(this.bt.compareTo(period.getBeginTime()) == 1 && this.et.compareTo(period.getEndTime()) == -1)
- {
- //b1, e1 is this
- return this;
- }
- //geval 3: b1 < b2, e1 < e2 (overlap: b2, e1)
- if(this.bt.compareTo(period.getBeginTime()) == -1 && this.et.compareTo(period.getEndTime()) == -1)
- {
- return new Period(period.getBeginTime(), this.et);
- }
- //geval 4: b1 > b2, e1 > e2 (overlap: b1, e2)
- if(this.bt.compareTo(period.getBeginTime()) == 1 && this.et.compareTo(period.getEndTime()) == 1)
- {
- return new Period(this.bt, period.getEndTime());
- }
- //als er een gat tussen zit of tegen elkaar aan
- return null;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement