NeoGriever

Untitled

Dec 19th, 2020
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. foreach (Event iterEvent in eventsInfo)
  2. {
  3. // DateTime endPoint = iterEvent.starttime + iterEvent.timespan;
  4. // bool afterStart = iterEvent.endtime > start;
  5. // bool beforeEnd = iterEvent.starttime < end;
  6. if (iterEvent.endtime > start || iterEvent.starttime < end)
  7. {
  8. bool merge = true;
  9. bool consumed = false;
  10. foreach(Event tmpEvent in tmpEvents)
  11. {
  12. if(!consumed)
  13. {
  14. bool startOverStart = iterEvent.starttime > tmpEvent.starttime;
  15. bool endOverStart = iterEvent.endtime > tmpEvent.starttime;
  16. bool startOverEnd = iterEvent.starttime > tmpEvent.endtime;
  17. bool endOverEnd = iterEvent.endtime > tmpEvent.endtime;
  18.  
  19. bool fullOverlap = !startOverStart && endOverEnd;
  20. // iterEvent ╔═══════════════════════════╗
  21. // ╚═══════════════════════════╝
  22. // tmpEvent ╔═══════════╗
  23. // ╚═══════════╝
  24.  
  25. bool overlapAtStart = !startOverStart && endOverStart;
  26. // iterEvent ╔═══════════════
  27. // ╚═══════════════
  28. // tmpEvent ╔═══════════╗
  29. // ╚═══════════╝
  30.  
  31. bool overlapAtEnd = !startOverEnd && endOverEnd;
  32. // iterEvent ═══════════════╗
  33. // ═══════════════╝
  34. // tmpEvent ╔═══════════╗
  35. // ╚═══════════╝
  36.  
  37. bool insideNoOverlap = startOverStart && !endOverEnd;
  38. // tmpEvent ╔═══╗
  39. // ╚═══╝
  40. // tmpEvent ╔═══════════╗
  41. // ╚═══════════╝
  42.  
  43. if( fullOverlap || overlapAtStart || overlapAtEnd || insideNoOverlap )
  44. {
  45. if(tmpEvent.starttime > iterEvent.starttime)
  46. {
  47. // iterEvent ╔═══════════════
  48. // ╚═══════════════
  49. // tmpEvent ╔ /____ ╔═══════════╗
  50. // ╚ \ ╚═══════════╝
  51. tmpEvent.setStart(iterEvent.starttime);
  52. }
  53. if(tmpEvent.endtime < iterEvent.endtime)
  54. {
  55. // iterEvent ═══════════════╗
  56. // ═══════════════╝
  57. // tmpEvent ═══════╗ ____\ ╗
  58. // ═══════╝ / ╝
  59. tmpEvent.setEnd(iterEvent.endtime);
  60. }
  61. merge = false;
  62. }
  63. }
  64. }
  65. }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment