code: public List<Change> diff(@NotNull final WeeklyOpeningHours toOther) {
  
          Contract.requireArgNotNull("toOther", toOther);
  
          final WeeklyOpeningHours thisNormalized = this.normalize();
          final WeeklyOpeningHours otherNormalized = toOther.normalize();
  
          final List<Change> changes = new ArrayList<>();
  
          for (final DayOpeningHours thisDoh : thisNormalized) {
              final DayOpeningHours otherDoh = otherNormalized.findDay(thisDoh);
              if (otherDoh == null) {
                  // A day was completely deleted
                  changes.addAll(thisDoh.asRemovedChanges());
              } else {
                  // Day exists, but hours may have changed
                  changes.addAll(thisDoh.diff(otherDoh));
              }
          }
          for (final DayOpeningHours otherDoh : otherNormalized) {
              final DayOpeningHours thisDoh = thisNormalized.findDay(otherDoh);
              if (thisDoh == null) {
                  // A new day was added
                  changes.addAll(otherDoh.asAddedChanges());
              }
          }
  
          return changes;
  
      }
docs: Returns the added/removed opening hours from this week to the other one.
  
  @param toOther
  New weekly information to compare with.
  
  @return Changes from this week to the new one.