Advertisement
Guest User

Untitled

a guest
Nov 8th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.59 KB | None | 0 0
  1. package net.siekiera.tasks.lekcja3;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6.  
  7. /**
  8.  * We don't want our ranges to overlap. This validator should check if ranges overlap or not.
  9.  *
  10.  * # Add to ArrayList list.add(Object o)
  11.  * # Get from ArrayList list.get(int index)
  12.  * # Compare dates date1.isBefore(LocalDateTime date2), date1.isAfter(LocalDateTime date2),
  13.  * date1.isEqual(LocalDateTime date2)
  14.  *
  15.  * https://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/
  16.  *
  17.  */
  18. public class DateTimeRangeValidator {
  19.     private List<DateTimeRange> dateTimeRangeList;
  20.  
  21.     public DateTimeRangeValidator() {
  22.         this.dateTimeRangeList = new ArrayList<DateTimeRange>();
  23.     }
  24.  
  25.     /**
  26.      * Returns true if ranges in list overlap at least once.
  27.      *
  28.      * @return
  29.      */
  30.     public boolean doTheyOverlap() {
  31.         if (this.dateTimeRangeList.size() < 2) return false;
  32.  
  33.         // Arrays.sort(this.dateTimeRangeList); czeeeeeeeeeeemuuuuuuuuuuu nie pozwala?....
  34.  
  35.         // Arrays.sort(new List[]{this.dateTimeRangeList}); // o co tu chodzi?....
  36.  
  37.         Collections.sort(this.this.dateTimeRangeList);
  38.  
  39.         for(int i = 0; i < this.dateTimeRangeList.size() - 1; i++) {
  40.             if ( !(this.dateTimeRangeList.get(i).getEndDate().isBefore(this.dateTimeRangeList.get(i+1).getStartDate())) ) return true;
  41.         }
  42.         return false;
  43.     }
  44.  
  45.     /**
  46.      * Add range to list.
  47.      * @param dateTimeRange
  48.      */
  49.     public void addRange(DateTimeRange dateTimeRange) {
  50.         this.dateTimeRangeList.add(dateTimeRange);
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement