Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. @Override
  2. public IPeriod unionWith(IPeriod period)
  3. {
  4.  
  5. //geval 0 : gat tussen de periodes
  6. if(this.bt.compareTo(period.getEndTime()) == 1 || this.et.compareTo(period.getBeginTime()) == -1)
  7. {
  8. return null;
  9. }
  10. //geval 1: b1 < b2, e1 > e2 (union: b1, e1)
  11. if (this.bt.compareTo(period.getBeginTime())== -1 && this.et.compareTo(period.getEndTime())== 1)
  12. {
  13. //b1, e1 is this
  14. return this;
  15. }
  16. //geval 2: b2 < b1, e2 > e1.(union: b2, e2)
  17. if(this.bt.compareTo(period.getBeginTime()) == 1 && this.et.compareTo(period.getEndTime()) == -1)
  18. {
  19. //b2, e2 is period
  20. return period;
  21. }
  22. //geval 3: b1 < b2, e1 < e2 (union: b1, e2)
  23. if(this.bt.compareTo(period.getBeginTime()) == -1 && this.et.compareTo(period.getEndTime()) == -1)
  24. {
  25. return new Period(this.bt, period.getEndTime());
  26. }
  27. //geval 4: b1 > b2, e1 > e2 (union: b2, e1)
  28. if(this.bt.compareTo(period.getBeginTime()) == 1 && this.et.compareTo(period.getEndTime()) == 1)
  29. {
  30. return new Period(period.getBeginTime(), this.et);
  31. }
  32. //geval 5: b1 < b2, b2 = e1
  33. if(this.bt.compareTo(period.getBeginTime()) == -1 && this.et.compareTo(period.getBeginTime()) == 0)
  34. {
  35. return new Period(this.bt, period.getEndTime());
  36. }
  37. //geval 6: b1 > b2, b1 = e2
  38. if(this.bt.compareTo(period.getBeginTime()) == 1 && this.bt.compareTo(period.getEndTime()) == 0)
  39. {
  40. return new Period(period.getBeginTime(), this.et);
  41. }
  42.  
  43. //als er geen overlap of aanraking is
  44. return null;
  45. }
  46.  
  47. @Override
  48. public IPeriod intersectionWith(IPeriod period)
  49. {
  50. //geval 1: b1 < b2, e1 > e2 (overlap: b2, e2)
  51. if (this.bt.compareTo(period.getBeginTime())== -1 && this.et.compareTo(period.getEndTime())== 1)
  52. {
  53. //b2, e2 is period
  54. return period;
  55. }
  56. //geval 2: b2 < b1, e2 > e1.(overlap: b1, e1)
  57. if(this.bt.compareTo(period.getBeginTime()) == 1 && this.et.compareTo(period.getEndTime()) == -1)
  58. {
  59. //b1, e1 is this
  60. return this;
  61. }
  62. //geval 3: b1 < b2, e1 < e2 (overlap: b2, e1)
  63. if(this.bt.compareTo(period.getBeginTime()) == -1 && this.et.compareTo(period.getEndTime()) == -1)
  64. {
  65. return new Period(period.getBeginTime(), this.et);
  66. }
  67. //geval 4: b1 > b2, e1 > e2 (overlap: b1, e2)
  68. if(this.bt.compareTo(period.getBeginTime()) == 1 && this.et.compareTo(period.getEndTime()) == 1)
  69. {
  70. return new Period(this.bt, period.getEndTime());
  71. }
  72.  
  73. //als er een gat tussen zit of tegen elkaar aan
  74. return null;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement